Android 线程问题

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 <异常序列>{
    //同步函数代码
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值