摘要:我是一個線程,我一出生就被編了個號然后被領到一個昏暗的屋子里,這里我發現了很多和我一模一樣的同伴。我身邊的同伴待的時間比較長,他帶著滄桑的口氣對我說我們線程的宿命就是處理包裹。
我是一個線程, 我一出生就被編了個號: 0x3704, 然后被領到一個昏暗的屋子里, 這里我發現了很多和我一模一樣的同伴。
我身邊的同伴0x6900 待的時間比較長, 他帶著滄桑的口氣對我說:
我們線程的宿命就是處理包裹。 把包裹處理完以后還得馬上回到這里,否則可能永遠回不來了。
我一臉懵懂,包裹,什么包裹?
”不要著急,馬上你就會明白了, 我們這里是不養閑人的。“
果然,沒多久,屋子的門開了, 一個面貌兇惡的家伙吼道:
"0x3704 ,出來!"
我一出來就被塞了一個沉甸甸的包裹,上面還有附帶著一個寫滿了操作步驟的紙。
"快去,把這個包裹處理了。"
"去哪兒處理"
"跟著指示走, 先到就緒車間"
果然,地上有指示箭頭,跟著它來到了一間明亮的大屋子,這里已經有不少線程了, 大家都很緊張,好像時刻準備著往前沖。
我剛一進來,就聽見廣播說:“0x3704, 進入車間”
我趕緊往前走, 身后很多人議論說:
”他太幸運了, 剛進入就緒狀態就能運行“
”是不是有關系?“
”不是,你看人家的優先級多高啊, 唉“
前邊就是車間, 這里簡直是太美了, 怪不得老線程總是嘮叨著說:要是能一直待在這里就好了。
這里空間大,視野好,空氣清新,鳥語花香,還有很多從來沒見過的人,像服務員一樣等著為我服務。
他們也都有編號, 更重要的是每個人還有個標簽,上面寫著:硬盤,數據庫,內存,網卡...
我現在理解不了,看看操作步驟吧:
第一步:從包裹中取出參數
打開包裹, 里邊有個HttpRequest 對象, 可以取到 userName, password兩個參數
第二步:執行登錄操作
奧,原來是有人要登錄啊,我把userName/password 交給 數據庫服務員,他拿著數據, 慢騰騰的走了。
他怎么這么慢? 不過我是不是正好可以在車間里多待一會兒? 反正也沒法執行第三步。
就在這時,車間里的廣播響了:
"0x3704, 我是CPU , 記住你正在執行的步驟, 馬上帶包裹離開"
我慢騰騰的開始收拾
”快點, 別的線程馬上就要進來了“
離開這個車間, 又來到一個大屋子,這里很多線程慢騰騰的在喝茶,打牌。
”哥們,你們沒事干了?“
”你新來的把, 你不知道我在等數據庫服務員給我數據啊! ,據說他們比我們慢好幾十萬倍, 在這里好好歇吧“
”啊? 這么慢? 我這里有人在登錄系統, 能等這么長時間嗎"
”放心,你沒聽說過人間一天, CPU一年嗎, 我們這里是用納秒,毫秒計時的, 人間等待一秒,相當于我們好幾天呢, 來的及“
干脆睡一會吧 , 不知道過了多久 ,大喇叭又開始廣播了:
"0x3704, 你的數據來了,快去執行”
我轉身就往CPU車間跑,發現這里的們只出不進!
后面傳來陣陣哄笑聲:
”果然是新人, 不知道還得去就緒車間等“
于是趕緊到就緒車間, 這次沒有那么好運了, 等了好久才被再次叫進CPU車間。
在等待的時候, 我聽見有人小聲議論:
”聽說了嗎,最近有個線程被kill掉了“
”為啥啊?“
”這家伙賴在CPU車間不走, 把CPU利用率一直搞成100%,后來就被kill掉了“
”Kill掉以后弄哪兒去了“
”可能被垃圾回收了吧“
我心里打了個寒噤 , 趕緊接著處理, 收下的動作塊多了,第二步登錄成功了
第三步:構建登錄成功后的主頁
這一步有點費時間, 因為有很多HTML需要處理, 不知道代碼誰寫的,處理起來很煩人。
我正在緊張的制作html呢, CPU有開始叫了:
"0x3704, 我是CPU , 記住你正在執行的步驟, 馬上帶包裹離開"
”為啥啊“
”每個線程只能在CPU上運行一段時間,到了時間就得讓別人用了, 你去就緒車間待著, 等著叫你吧“
就這樣, 我一直在就緒-運行 這兩個狀態,不知道輪轉了多少次, 終于安裝步驟清單把工作做完了。
最后順利的把包含html的包裹發了回去。
至于登錄以后干什么事兒 , 我就不管了。
馬上就要回到我那昏暗的房間了, 真有點舍不得這里。
不過相對于有些線程, 我還是幸運的, 他們運行完以后就徹底的銷毀了,而我還活著 !
回到了小黑屋, 老線程0x6900 問:
”怎么樣?第一天有什么感覺?“
”我們的世界規則很復雜 , 首先你不知道什么時候會被挑中執行; 第二 ,在執行的過程中隨時可能被打斷,讓出CPU車間;
第三,一旦出現硬盤,數據庫這樣耗時的操作也得讓出CPU,去等待; 第四,就是數據來了,你也不一定馬上執行,還得等著CPU挑選“
”小伙子理解的不錯啊“
”我不明白為什么很多線程都執行完就死了, 為什么咱們還活著?“
”你還不知道, 長生不老是我們的特權, 我們這里有個正式的名稱,叫做 線程池!“
(未完待續)
歡迎和我交流
微信公共號:"碼農翻身"
QQ :14703250
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65656.html
摘要:中的多線程我參考了中的介紹,介紹的很入門很詳細。如只設置了第個和第個,沒有設置這只會掉第個子線程個人猜測,當程序運行完主線程后則會檢查剩余的子線程,將最后面的且是子進程刪掉。第個沒有掉是因為線程還在運行并且是默認狀態不能被的。 本人初學者開始第一篇博客,記錄學習的點點滴滴,以作為備忘錄,也希望能同大家一起分享。有理解錯誤的地方希望大家指正。 python中的多線程我參考了(http:/...
摘要:我叫運行結束三線程不安全導致請求丟失問題解決場景前面一的作用中的計數場景。我叫運行結束方法拋異常后,是否會釋放鎖拋出異常之后會釋放鎖,后面的線程會進入同步方法。當一個線程獲得了對應的鎖的時候,其他線程只能等待我釋放之后才能獲取該鎖。 一、Synchronized的作用 作用:能夠保證在同一時刻最多只有一個線程執行該代碼,以達到保證并發安全的效果 public class Disappe...
摘要:如果你把函數的指針地址作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用于對該事件或條件進行響應。 同期異步系列文章推薦談一談javascript異步javascript異步與promisejavascript異步之Promise.all()、Promise.ra...
閱讀 3708·2023-04-26 00:56
閱讀 2686·2021-09-30 10:01
閱讀 961·2021-09-22 15:30
閱讀 3915·2021-09-07 10:21
閱讀 1506·2021-09-02 15:40
閱讀 2750·2021-08-30 09:47
閱讀 1234·2021-08-16 10:57
閱讀 1862·2019-08-30 14:01