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之后如果还未执行,就会直接去执行