1 、併發程式設計三要素?
(1)原子性
原子性指的是乙個或者多個操作,要麼全部執行並且在執行的過程中不被其他操作打斷,要麼就全部都不執行。
(2)可見性
可見性指多個執行緒操作乙個共享變數時,其中乙個執行緒對變數進行修改後,其他執行緒可以立即看到修改的結果。
(3)有序性
有序性,即程式的執行順序按照**的先後順序來執行。
2 、實現可見性的方法有哪些?
(1)發揮多核 cpu 的優勢
多執行緒,可以真正發揮出多核 cpu 的優勢來,達到充分利用 cpu 的目的,採用多執行緒的方式去同時完成幾件事情而不互相干擾。
(2)防止阻塞
從程式執行效率的角度來看,單核 cpu 不但不會發揮出多執行緒的優勢,反而會因為在單核cpu 上執行多執行緒導致執行緒上下文的切換,而降低程式整體的效率。但是單核 cpu 我們還是要應用多執行緒,就是為了防止阻塞。試想,如果單核 cpu 使用單執行緒,那麼只要這個執行緒阻塞了,比方說遠端讀取某個資料吧,對端遲遲未返回又沒有設定超時時間,那麼你的整個程式在資料返回回來之前就停止執行了。多執行緒可以防止這個問題,多條執行緒同時執行,哪怕一條執行緒的**執行讀取資料阻塞,也不會影響其它任務的執行。
(3)便於建模
這是另外乙個沒有這麼明顯的優點了。假設有乙個大的任務 a,單執行緒程式設計,那麼就要考慮很多,建立整個程式模型比較麻煩。但是如果把這個大的任務 a 分解成幾個小任務,任務 b、任務c、任務 d,分別建立程式模型,並通過多執行緒分別執行這幾個任務,那就簡單很多了。
4 、建立執行緒的有哪些方式?
(1)繼承 thread 類建立執行緒類
(2)通過 runnable 介面建立執行緒類
(3)通過 callable 和 future 建立執行緒
(4)通過執行緒池建立
5、建立執行緒的三種方式的對比
(1)採用實現 runnable、callable 介面的方式建立多執行緒。
優勢是:
執行緒類只是實現了runnable 介面或 callable 介面,還可以繼承其他類。在這種方式下,多個執行緒可以共享同乙個 target 物件,所以非常適合多個相同執行緒來處理同乙份資源的情況,從而可以將 cpu、**和資料分開,形成清晰的模型,較好地體現了物件導向的思想。
劣勢是:
程式設計稍微複雜,如果要訪問當前執行緒,則必須使用 thread.currentthread()方法。
(2)使用繼承 thread 類的方式建立多執行緒
優勢是:
編寫簡單,如果需要訪問當前執行緒,則無需使用 thread.currentthread()方法,直接使用 this即可獲得當前執行緒。
劣勢是:
執行緒類已經繼承了thread 類,所以不能再繼承其他父類。
(3)runnable 和 callable 的區別
a、callable 規定(重寫)的方法是 call(),runnable 規定(重寫)的方法是 run()。
b、callable 的任務執行後可返回值,而 runnable 的任務是不能返回值的。
c、call 方法可以丟擲異常,run 方法不可以。
d、執行 callable 任務可以拿到乙個 future 物件,表示非同步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,並檢索計算的結果。通過 future 物件可以了解任務執**況,可取消任務的執行,還可獲取執行結果。
解密微信拼團電商 拼多多
字數1377 閱讀1421 喜歡0 拼多多是個什麼鬼?我們來定個性。拼多多是一家專注於c2b拼團的第三方社交電商平台,將溝通分享與社交的理念融於電商的參團拼團過程中,形成屬於拼多多的新社交電商思維。在拼多多平台,消費者需求能夠影響商品種類和 且商家入駐簡單透明。拼多多自2015年9月份開始移動電商專...
拼多多上線美妝 穿搭電商App「美美噠」
程式設計客棧 www.cppcns.com 9月7日 訊息 據 tech 星球 報道,拼多多近期上線了一款名為 美美噠 的應用,該應用由深圳前海新之江www.cppcns.com資訊科技 廣州分公司開發。根據程式設計客棧應用官方介紹,美美噠專注於推薦最熱銷的穿搭 美妝 生活家居商品。其首頁中主要分為...
電商中概股週三普漲 拼多多漲超15
程式設計客棧 www.cppcns.com 7月29日 訊息 在經歷了一段低谷時期後,本週三,中概股迎來了集體暴漲,電商中概股普遍 其中,拼多多漲幅超15 報91.89美元。截至28日 拼多多總市值為1151.65億美元。此前,拼多多連續4個交易日收跌,周二 跌幅達10.35 報79zjvdob.5...