上海 拼多多電商部二面(1)

2021-10-19 22:52:17 字數 1633 閱讀 7067

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...