线程提高利用率,降低运行效率,加大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 <异常序列>{ //同步函数代码 }建议使用同步代码块而不是同步函数