1. 程式人生 > >java多線程基礎

java多線程基礎

很難 thread 結束 就會 線程 () cpu zed ron

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之後如果還未執行,就會直接去執行

java多線程基礎