1.yild禮讓線程。作用:讓多個線程的執行更和諧,但是不能靠它保證一人一次
。2.守護線程:
當主線程結束後,被標記被守護線程的線程也會結束
在線程啟動前調用線程.setDaemon();
3.中斷線程:打斷中單線程是把線程狀態終止如:sleep …
stop(已過時)讓線程停止,直接殺死。4.
多線程賣票問題(線程安全):
1.賣瞭負數張票:隨機性和延遲導致
2.賣瞭相同的票:CPU的一次操作必須是原子性的5.解決線程安全問題(線程同步機制)? A:3-個問題原因:一個:是否是多線程環境b:是否共享數據c:是否有多條語句操作共享數據B:synchronized(對象(需要同一個對象)){需要同步代碼} a:耗費資源C:同步方法鎖的對象是:this D:靜態同步方法(還沒有this)鎖的對象是:類的字節碼档案對象(class)1 E:使用lock()和unlock()—-> Lock lock = new ReentrantLock(); 6.死線問題:是指兩個或者兩個以上的線程在執行的過程中,因爭奪資源產生的一種互相等待的現象。7. 線程間通信問題:不同種類的線程針對同一個資源的操作8.生產者消費者問題:用鎖調用wait和notify(Object對象)
答:在等待後會立即釋放鎖,被喚醒時從等待後繼續執行
B:被喚醒之後不表示立馬執行,繼續搶資源