Android 线程问题

    xiaoxiao2021-11-29  35

    Android 线程问题

    线程提高利用率,降低运行效率,加大cpu运行负载 一、创建线程 第一种方法 继承Thread类

    class<类名> extends Thread{ @Override public void run(){ //线程代码 }

    在其他执行部分

    <类名> <变量>=new <类名>(); <变量>.start();

    第二种方法 继承接口类Runnable

    class <> implements Runnable { @Override public void run(){ //线程代码 } }

    执行部分

    <类名> <变量>=new <类名>(); new Thread(<变量>).start();//通过Thread启动Runnable线程

    二、线程的一些方法

    1、线程睡眠–就是让线程暂停使用 ,等过完休眠时间后,就进入线程等待环节

    try{ Thread.sleep(时间);//线程睡眠时间 时间单位是毫秒 }catch(InterruptedException e){ e.printStackTrace(); }

    2、线程让步 join() 和yield() join()方法使调用该方法的线程在此之前执行完毕,也就是等待该方法的线程执行完毕后再往下继续执行。

    tread1.start(); try { //join():让这个先执行完成,其它线程的资源全部给这个线程 thread.join();; } catch (InterruptedException e) { e.printStackTrace(); }

    yield():yield()方法只能让同优先级的线程有执行的机会,让正在执行的退回到准备状态,和其他线程再次执行资源争夺战,故线程让步不一定成功。

    Thread.yield();

    3、线程的同步问题 同步方法:synchronized ,该关键字修饰后,只能等到线程执行完成同步代码块或同步函数后,其他线程才有执行的可能。 同步代码块:

    synchronized("任意数或者变量"){ //同步代码块 }

    同步函数:

    synchronized <返回类型> 方法名称([参数列表]) throws <异常序列>{ //同步函数代码 }

    建议使用同步代码块而不是同步函数

    转载请注明原文地址: https://ju.6miu.com/read-678639.html

    最新回复(0)