java多线程基础

wait和notify是针对sychronized锁定对象的
sychronized(object)object.wait();//释放object的锁
sychronized(object)object.notify();//会随机唤起一个对object枷锁的等待线程,这个过程是随机唤醒的,不公平的
sychronized(object)object.notifyAll()//会把所有对object加锁的线程全部唤醒

 

suspend(线程挂起) 和resume(继续执行)

suspend线程挂起之后不会释放锁,直到resume操作;

如果resume在suspend之前执行,那么这个线程很难被唤醒,从线程角度看线程还是runable,会袁总影响系统。

如果优化suspend需要可以用wait和notify实现

 

join和yield

join表示等待线程结束再次执行

yield表示谦让,表示使当前线程让出cpu,让其他线程工作。

AddThread at=new AddThrea();

at.start();

at.join();

表示当前线程先阻塞,等待at线程执行完成之后再执行当前线程

join(millis)表示等待millis之后如果还未执行,就会直接去执行

 

posted @ 2017-09-08 10:13  流氓剑客  阅读(108)  评论(0编辑  收藏  举报