java多線程基礎
阿新 • • 發佈:2017-09-08
很難 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多線程基礎