成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

我的面試準備過程--多線程(更新中)

zoomdong / 1291人閱讀

摘要:但是,實際中無法保證達到讓步目的,因為讓步的線程還有可能被線程調度程序再次選中。在大多數情況下,將導致線程從運行狀態(tài)轉到可運行狀態(tài),但有可能沒有效果。

多線程編程 線程狀態(tài)圖
總是無法上傳,稍后上傳
常用函數

狀態(tài)轉換 運行中->阻塞

sleep(long millis) 在指定的毫秒數內讓當前正在執(zhí)行的線程休眠

join() 等待t線程終止

使用方式
    Thread t = new Thread1();
    t.start();
    t.join();
主線程進入阻塞狀態(tài),需要等待t線程執(zhí)行結束后,才能進入可運行狀態(tài),等待cpu執(zhí)行。

狀態(tài)轉換 運行中->可運行

yield() 暫停當前正在執(zhí)行的線程對象,并執(zhí)行其他線程

yield()應該做的是讓當前運行線程回到可運行狀態(tài),以允許具有相同優(yōu)先級的其他線程獲得運行機會。因此,使用yield()的目的是讓相同優(yōu)先級的線程之間能適當的輪轉執(zhí)行。但是,實際中無法保證yield()達到讓步目的,因為讓步的線程還有可能被線程調度程序再次選中。yield()從未導致線程轉到等待/睡眠/阻塞狀態(tài)。在大多數情況下,yield()將導致線程從運行狀態(tài)轉到可運行狀態(tài),但有可能沒有效果。

**sleep()和yield()的區(qū)別**
sleep()和yield()的區(qū)別):sleep()使當前線程進入停滯狀態(tài),所以執(zhí)行sleep()的線程在指定的時間內肯定不會被執(zhí)行;yield()只是使當前線程重新回到可執(zhí)行狀態(tài),所以執(zhí)行yield()的線程有可能在進入到可執(zhí)行狀態(tài)后馬上又被執(zhí)行。sleep 方法使當前運行中的線程睡眼一段時間,進入不可運行狀態(tài),這段時間的長短是由程序設定的,yield 方法使當前線程讓出 CPU 占有權,但讓出的時間是不可設定的。實際上,yield()方法對應了如下操作:先檢測當前是否有相同優(yōu)先級的線程處于同可運行狀態(tài),如有,則把 CPU  的占有權交給此線程,否則,繼續(xù)運行原來的線程。所以yield()方法稱為“退讓”,它把運行機會讓給了同等優(yōu)先級的其他線程。
另外,sleep 方法允許較低優(yōu)先級的線程獲得運行機會,但 yield()  方法執(zhí)行時,當前線程仍處在可運行狀態(tài),所以,不可能讓出較低優(yōu)先級的線程些時獲得 CPU 占有權。在一個運行系統(tǒng)中,如果較高優(yōu)先級的線程沒有調用 sleep 方法,又沒有受到 IO 阻塞,那么,較低優(yōu)先級線程只能等待所有較高優(yōu)先級的線程運行結束,才有機會運行。

運行中->等待隊列

```o.wait()```
Obj.wait(),與Obj.notify()必須要與synchronized(Obj)一起使用,也就是wait,與notify是針對已經獲取了Obj鎖進行操作,從語法角度來說就是Obj.wait(),Obj.notify*必須在synchronized(Obj){...}語句塊內*。從功能上來說wait就是說線程在獲取對象鎖后,主動釋放對象鎖,同時本線程休眠。直到有其它線程調用對象的notify()喚醒該線程,才能繼續(xù)獲取對象鎖,并繼續(xù)執(zhí)行。相應的notify()就是對對象鎖的喚醒操作。但有一點需要注意的是*notify()調用*后,*并不是馬上就釋放對象鎖的*,而是在相應的synchronized(){}語句塊執(zhí)行結束,自動釋放鎖后,JVM會在wait()對象鎖的線程中隨機選取一線程,賦予其對象鎖,喚醒線程,繼續(xù)執(zhí)行。這樣就提供了在線程間同步、喚醒的操作。Thread.sleep()與Object.wait()二者都可以暫停當前線程,釋放CPU控制權,主要的區(qū)別在于Object.wait()在釋放CPU同時,釋放了對象鎖的控制。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.hztianpu.com/yun/70153.html

相關文章

  • 求職準備 - 收藏集 - 掘金

    摘要:一基礎接口的意義百度規(guī)范擴展回調抽象類的意義想不想通過一線互聯網公司面試文檔整理為電子書掘金簡介谷歌求職記我花了八個月準備谷歌面試掘金原文鏈接翻譯者 【面試寶典】從對象深入分析 Java 中實例變量和類變量的區(qū)別 - 掘金原創(chuàng)文章,轉載請務必保留原出處為:http://www.54tianzhisheng.cn/... , 歡迎訪問我的站點,閱讀更多有深度的文章。 實例變量 和 類變量...

    cuieney 評論0 收藏0
  • 一個 16年畢業(yè)生所經歷的 PHP 面試

    摘要:正確做法是給加索引,還有聯合索引,并不能避免全表掃描。 前言:有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 有心的同學應該會看到我這個noteBook下面的其它知識,希望對你們有些許幫助。 本文地址 時間點:2017-11 一個16年畢業(yè)生所經歷的php面試 一、什么是面試 二、面試準備 1. 問:什么時候開始準備? 2. 問:怎么準備? 三、面試...

    dabai 評論0 收藏0
  • 我的面試準備過程--單例模式(更新)

    摘要:把準備過程紀錄下來,共勉。單例模式有幾種經典寫法,核心思想就是將構造函數私有化,并且通過靜態(tài)方法獲取一個唯一的實例。 寫在最前面 導師貪腐出逃美國,兩年未歸,可憐了我。拿了小米和美團的offer,要被延期,offer失效,工作重新找。把準備過程紀錄下來,共勉。 單例模式有幾種經典寫法,核心思想:就是將構造函數私有化,并且通過靜態(tài)方法獲取一個唯一的實例。 餓漢式 public c...

    you_De 評論0 收藏0
  • 螞蟻金服實習生面經總結(已拿口頭offer)

    摘要:我自己總結的學習的系統(tǒng)知識點以及面試問題,已經開源,目前已經。面試官那你都了解里面的哪些東西呢我哈哈哈這可是我的強項,從,說到,,又說到線程池,分別說了底層實現和項目中的應用。 我自己總結的Java學習的系統(tǒng)知識點以及面試問題,已經開源,目前已經 35k+ Star。會一直完善下去,歡迎建議和指導,同時也歡迎Star: https://github.com/Snailclimb... ...

    Lemon_95 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<