国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java中線程常用的方法

2019-11-06 08:04:44
字體:
來源:轉載
供稿:網友
1. java如何實現一個多線程(1) 繼承Threadstart()方法開啟一個線程(2) 實現Runnable run()方法執行線程內容Thread(Runnable)2. 線程常用方法a) currentThread() 在線程Thread1中調用該方法返回當前線程名字是thread1,在main方法中運行 thread1.start() 再調用該方法返回當前線程名字是main。所以該方法主要用來獲取當前運行的線程。b) isAlive() 檢測當前線程是否是存活狀態,存活返回true,否則返回false。c) getId() 獲取調用方線程的線程id。d) stop() 暴力停止停止一個線程的運行。jdk api 過期作廢的方法不建議使用,次方法使用時拋出 java.lang.ThreadDeath,此異常不需要顯示捕獲。同時存在一些潛在的問題,強制停止線程可能使一些清理的工作得不到完成,另外一個情況就是對鎖定的對象“解鎖”會導致監視器數據不能同步處理完成,出現數據不一致。推薦使用interrupt異常法。e) sleep(long) 調用該方法后線程會使當前線程停止運行long毫秒,直到long毫秒后線程繼續執行后邊的邏輯,sleep期間線程呈等待狀態,當調用該sleep方法的方法或者代碼塊獲得到鎖的情況下,線程呈同步阻塞狀態,不會釋放鎖直到程序執行完成。f) suspend()/resume()suspend可以暫停線程,resume恢復線程。與stop一樣,過期作廢的方法。不推薦使用的原因----獨占。使用不當時,極易對公共對象獨占,其它線程獲取不到公共同步對象,進而導致死鎖。g) yield()放棄當前的CPU資源,放棄的時間不確定,可能剛剛放棄立馬又獲得到CPU時間片。在操作系統中線程優先級越高,CPU越優先執行。設置線程優先級可以使用setPRiority(),在java中優先級被分為1~10,小于1或者大于10 拋出異常 throw new IllegalArgumentException()。線程具有繼承性,線程A啟動線程B 則線程B擁有A同級的優先權。優先級高的線程總是大部分優先執行,但不代表全部會執行,優先級與代碼執行的順序無關,CPU會盡量將執行資源讓給優先級較高的線程。h) interrupt()/isInterrupted()/interrupted() 借鑒另外文檔i) wait()/wait(long)/notify()/notifyAll()Object的方法,等待/通知,線程在執行該幾個方法前,必須獲得該對象的對象級別的鎖,可以是同步方法或者同步代碼塊,如果沒有鎖則拋出IllegalMonitorStateException。調用wait()后線程進入等待狀態,直到有線程調用了該對象監視器notify()/notifyAll() 對等待狀態喚醒。wait(long) 方法在long毫秒后自動喚醒。wait與sleep不同的是sleep 不會釋放鎖,而wait會釋放當前的線程所持有的對象鎖。在多線程中wait/notify 常被用于線程之間的通信。生產者與消費者之間的關系。sleep與wait對比:都可以使線程進入暫時停止的狀態,sleep時間結束后自動喚醒,await時間結束后或者直到被notify后喚醒。sleep睡眠期間不釋放鎖,wait釋放與interrupt結合使用都可以使用異常法停止線程,釋放對象鎖,但是wait的線程對象會進入線程等待池,等待被喚醒。j) join()/join(long)在很多情況下,主線程創建啟動子線程后,如果子線程運行時間比較早,主線程先于子線程結束,如果主線程需要等待子線程處理完某些程序或者數據,主線程需要這樣的邏輯或者數據時,就可以使用到join了。在主線程內調用thread.start()方法后調用thread.join()。則可以等到子線程結束后主線程執行結束。join與interrupt相遇后,如果主線程被打斷則拋出異常線程結束,此時子線程依然在運行。join(long) 主線程只等待long毫秒,join基于wait實現,所以會釋放鎖。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛坪县| 文昌市| 互助| 湛江市| 星座| 西充县| 陇川县| 大荔县| 双柏县| 奉新县| 双牌县| 巴林左旗| 隆化县| 义马市| 迁西县| 新乡市| 阿巴嘎旗| 肥城市| 信宜市| 蕉岭县| 富宁县| 深水埗区| 土默特右旗| 鸡泽县| 梓潼县| 宁化县| 天津市| 会东县| 寻乌县| 澜沧| 定远县| 禄丰县| 宣武区| 唐河县| 清新县| 吉安市| 通化市| 和平区| 九寨沟县| 饶平县| 元氏县|