1. 程式人生 > >泡一杯茶,學一學同異步

泡一杯茶,學一學同異步

Java 多執行緒系列文章第 2 篇

接下來幾篇會給大家屢清楚多執行緒中涉及到的一些概念,理解了這些概念,往後的文章才好明白。

今天給大家講講同步和非同步這兄弟倆。

同步 & 非同步

通過咱們現實中的一個場景來描述這 2 個乾巴巴的詞。大家身邊不知道有木有朋友是潮汕的?潮汕地區每家每戶都有功夫茶,只要來客人,一定會用功夫茶來招待。功夫茶關鍵在於功夫兩字,功夫指的是泡茶方式比較講究,它不像咱上班時用保溫瓶泡茶,而是有一道泡茶的流程和工具。下面在網上找到的功夫茶口訣(作為潮汕人這麼久,都不知道有這口訣,是聽我女朋友說有這個口訣才知道。。。)

潮汕功夫茶沖泡口訣:

  1. 白鶴沐浴(洗杯):用開水洗淨茶杯並提高茶具溫度。
  2. 觀音入宮(落茶):把鐵觀音茶放入茶具,放茶量約佔茶具容量的五分。
  3. 懸壺高衝(沖茶):把滾開的水提高衝入茶壺或蓋甌,使茶葉轉動。
  4. 春風拂面(刮泡沫):用壺蓋或甌蓋輕輕颳去漂浮的白泡沫,使其清新潔淨。
  5. 關公巡城(倒茶):把泡一、二分鐘後的茶水依次巡迴注入並列的茶杯裡。
  6. 韓信點兵(點茶):茶水倒到少許時要一點一點均勻地滴到各杯中,使其濃淡均勻。
  7. 鑑嘗湯色(看茶):觀賞杯中茶水的顏色,聞茶之香氣。
  8. 品啜甘霖(喝茶):乘熱細綴,先嗅其香,後嘗其味,邊啜邊嗅,淺斟細飲。飲量雖不多,但能齒頰留香,喉底回甘,心曠神怡,別有情趣。

有客人來的時候,我們會先煮水,沒等到水煮沸就先洗茶杯,落茶,等到水煮沸了,再衝茶,倒茶。這個過程中,有些步驟是同步的,比如洗茶杯和落茶,肯定要把茶杯先洗乾淨後再落茶,一個人沒法同時幹這 2 件事,我們關注點放在煮水這個過程,是先煮水,煮水需要比較長的時間,煮水的過程中把茶杯洗了,還有落茶,這個過程其實就是非同步,非同步指沒有乾等待水煮沸,在煮水的過程做其他事情(洗茶杯、落茶),這就像是傳送了一個訊息,通知說要煮水,然後就繼續自己該幹嘛幹嘛,非同步的過程完全不影響當前做的其他事。下圖反映了煮水步驟是非同步的這個過程。

如果主人用下面方式來泡茶,不是新手就是不歡迎你(開玩笑,有可能是主人一見如故,想趁著煮水和你嘮家常)。上面講了非同步泡茶的方式,下面講同步泡茶是啥回事。看下圖,把煮水這個過程放在了時間線下方,也就是在煮水的時候乾等著水煮沸,不做其他的事情,這就是同步,很明顯,最後整個泡茶的過程耗時比非同步的長。

總結

這裡在簡單總結一下(如有錯誤請大家幫忙糾正):

同步(Synchronous):特指在同一個執行緒裡面執行的內容之間的關係是有順序的;執行緒之間需要同步時,就需要使用一些顯式的同步方式,這也是多執行緒帶來的大問題,在多執行緒程式設計需要特別關注。

非同步(Asynchronous):特指一些執行內容可以不用直接等待執行結果,非同步執行的內容一般是在另一個執行緒執行,只需要執行完結果反饋回來就行。

推薦閱讀

程序知多少?

設計模式看了又忘,忘了又看?

公眾號後臺回覆『設計模式』可以獲取《一故事一設計模式》電子書

覺得文章有用幫忙轉發&點贊,多謝朋友們!

相關推薦

同異

Java 多執行緒系列文章第 2 篇 接下來幾篇會給大家屢清楚多執行緒中涉及到的一些概念,理解了這些概念,往後的文章才好明白。 今天給大家講講同步和非同步這兄弟倆。 同步 & 非同步 通過咱們現實中的一個場景來描述這 2 個乾巴巴的詞。大家身邊不知道有木有朋友是潮汕的?潮汕地區每家每戶都有功夫

如果上天再給我次機會我會這樣Java

單例 離職 演示 唐詩 代理模式 大學 讓我 win 指導 回頭看看, 我進入Java 領域已經快15個年頭了, 雖然學的也一般, 但是分享下我的心得,估計也能幫大家少走點彎路。 [入門] 我在2001年之前是C/C++陣營, 有C和面向對象的基礎, 後來轉到Java ,發

品人生沉浮平常心造萬千世界

第1章 檔案結構 每個C++/C程式通常分為兩個檔案。一個檔案用於儲存程式的宣告(declaration),稱為標頭檔案。另一個檔案用於儲存程式的實現(implementation),稱為定義(definition)檔案。 C++/C程式的標頭檔案以“.h”為字尾,C程式的定義檔案以“.c”為字尾

福鼎生態分享:好白如何沖泡

今天來說說福鼎一杯生態觀點: (一)不同品類,不同泡法; (二)不同年份,不同泡法; (三)不同用具,不同泡法; (四)不同物件,不同泡法; (一)不同品類,不同泡法 1.白毫銀針的泡法 沖泡白毫銀針,主要注意事項有二:其一,茶芽纖長細嫩,水溫不宜過高,90度左右即可;其二,這種上好的白茶渾

【java的漣漪】咖啡臺電腦品我java

專欄達人 授予成功建立個人部落格專欄

咖啡一行程式碼種境界也是種追求!

    軟體工程的學習很早就開始了,如今,在軟考中又再次相遇,有種“故地重遊”的感覺,但“物是昨日物而人非本來人”了,消除了原來的陌生、恐懼,更多的是對這部分知識的更深的理解和體會。之前對於軟工這部分

【Zero'Coffee】咖啡總有點苦澀而苦澀之中卻韻育著甜美!人生就象一杯咖啡在苦澀的途中亦有無限的甜蜜等待著去品嚐;人生的意義不在於會得到什麼而在於人生旅途中將體驗到什麼!好好享受人生吧從零度開始從Java開始!試著品嚐咖啡品嚐人生!

咖啡總有點苦澀,而苦澀之中卻韻育著甜美!人生就象一杯咖啡,在苦澀的途中亦有無限的甜蜜等待著去品嚐;人生的意義不在於會得到什麼,而在於人生旅途中將體驗到什麼!好好享受人生吧,從零度開始,從Java開始!...

午睡過後最好喝

來源:中國茶網   對於睡眠普遍不足的現代人來說,睡午覺具有振奮精神的效果,但是喜愛睡個午覺補睡眠的你,有一些問題是必須要注意的。   《國際流行病學期刊》的最新研究報告指出,愛睡午覺、天天睡,而且睡得又長又久的人,可要注意心臟病發作的危險。   哈佛大學及哥斯大黎加研

桃李春風江湖夜雨十年燈

CREATE   FUNCTION `getTrackingID`(shippingInfoID BIGINT(20)) RETURNS VARCHAR(10000) CHARSET utf8 BEGIN        DECLARE r_str VARCHAR(10000

次風口次大流看清一個新的世界

區塊鏈學習 成長 2018年,發生了許多事情。 2018年,人生第一次在醫院過了一個春節;2018年,人生第一次收獲了一個“小棉襖”(小情人);2018年,互聯網IT的風口轉向了區塊鏈;2018年,人生第一次在51cto學院報了區塊鏈課程。 一直以來,自己都有一個認知,風口年年有,追到何時才是頭。

轉:組織敏捷不是種選擇而是種必須!

個人理解:靈活、柔性、敏捷,所有都在指向高度不確定性、快速變化的時代特徵。人永遠是活動的主體,關注人的素質提升,培養與放權,才是實現敏捷的關鍵。面對變化,只能聽從指令、按規則行事,缺少主動的意識何談敏捷。戰場狀況瞬息萬變,戰鬥在一線的人員除了高度協作,更重要的是適時而變,在大目標一致的情況,使用更有

我的郵箱又收到了封信關乎愛情

發件人: 「維克多多多的」 傳送時間: 2018年12月1日 收件人: 上官冷兒 主題: 獨白 by @「維克多多多的」 某友,你好呀!        我現在

天一小步夢想大步

  Solr是一個獨立的企業級搜尋應用伺服器,它對外提供類似於Web-service的API介面。使用者可以通過http請求,向搜尋引擎伺服器提交一定格式的XML檔案,生成索引;也可以通過Http Get操作提出查詢請求,並得到XML格式的返回結果。 Solr是一個高效能,

又是年春運Python招自動撈票哦~

  前言 年味越來越淡,但我對過年的期待一直沒變。為了理想,離開家鄉。這一路,背上行囊,穿過人潮,千里迢迢。疲憊也好,激動也罷,總有家鄉值得牽掛。 但是,所有的鄉愁和感傷,最好的解藥就是一張火車票。每當萬事俱備,總是隻欠東風,我依然是被一張 5mm 厚的火車票攔在了門外。隱隱約約

【演算法】給定個數組除了個數出現1次之外其餘數都出現3次輸出出現次的那個數。

給定一個數組,除了一個數出現1次之外,其餘數都出現3次。找出出現一次的數。如:{1, 2, 1, 2, 1, 2, 7},找出7.格式:第一行輸入一個數n,代表陣列的長度,接下來一行輸入陣列A[n],(輸入的陣列必須滿足問題描述的要求),最後輸出只出現一次的數。

*(5)輸入互不相同的組整數構造棵二叉排序樹要求: ① 按遞減有序的順序輸出; ② 輸入一個整數查詢該整數是否在該二叉排序樹中查詢成功返回1否則返回0; ③ 在②中若查詢成功則將該結

/*(5)輸入互不相同的一組整數,構造一棵二叉排序樹,要求: ① 按遞減有序的順序輸出; ② 輸入一個整數,查詢該整數是否在該二叉排序樹中,查詢成功返回1,否則返回0; ③ 在②中,若查詢成功,則將該結點從二叉排序樹中刪除。 */ #include<stdio.h&g

iOS中使用opencv進行影象識別操作()步驟很多篇只是講了第一.

前言OpenCV ,是一個開源的跨平臺計算機視覺和機器學習庫,通俗點的說,就是他給計算機提供了一雙眼睛,一雙可以從圖片中獲取資訊的眼鏡,從而完成人臉識別、去紅眼、追蹤移動物體等等的影象相關的功能。更多具體的說明可參見 OpenCV 官網。匯入工程匯入 OpenCV 到 Xco

自學Python找不到工作?天只小時大佬勸你還是放棄吧!

  Python發展可以說是如日中天,更多的人選擇學習Python,也更多的人開始關注它,從這些關注度來看,我發現關注度最高的還是Python的就業前景是怎麼樣的,畢竟大家學習Python都是為了以後能有好的工作,那麼,Python就業到底靠不靠譜呢?答案當然是肯定的。 都說,滴水穿石非一

門程式語言的發展史-----python!(人生苦短我用python)------門語言需要先了解

起源----呱呱落地     Python的創始人為Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的指令碼解釋程式,作為ABC 語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該程式語言的名字,是因為

門編程語言的發展史-----python!(人生苦短我用python)------門語言需要先了解√

ref ali 視覺 str 縮進 自己的 發展史 tdi for 起源----呱呱落地 Python的創始人為Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,作為ABC 語言的一