並行中的正負兩面

2022-07-04 13:54:12 字數 686 閱讀 4224

大多情況下,並行對複雜度影響過大,並間接導致測試困難---

多執行緒或多程序導致的問題往往是有時發生,有時不發生,一般的測試手段並不足以發現這類問題。

所以原則上應該盡可能不用,除非收益足夠大。或則說在滿足需求的前提下,執行緒數和程序數應該盡可能少。

以多執行緒和多程序而論,確定「什麼時候適合使用這種技術」是比「怎麼使用這項技術」困難的多的事情。

現實中人們往往對事件,訊號燈等同步處理手段關注過多,而對究竟應不應該啟用多執行緒/

程序關注的太少。這裡來簡單做個總結,對於下面這些場景,一般來講啟用多執行緒

/程序是合適的:

這個列表應該進一步總結和加長,但限於精力,眼下卻只能列這麼多了。

對於多執行緒的誤用,在msdn

上可以找到乙份很好的總結,這裡提取幾個典型的結果:

多程序的誤用眼下看到的總結還不多,這裡略過,有經驗的可以幫忙一起總結。

最後加一點關於並行種類的補充資料:

為並行分類並不是很容易的事,這裡只介紹一種最簡單的,依據記憶體架構對並行進行分類的方法。依據記憶體架構,並行可以分為三類:

有人似乎還想進一步區分並行和併發,這就有點微妙了,個人不是很能分的清楚。

理想流 + 軟體 = 《完美軟體開發:方法與邏輯》

理想流 + 人生 = ??

理想流 + 管理 = ??

理想流 = 以概念和邏輯推演本質,追求真理。

網易杭研兩面技術面 hr面

自我介紹 以下都要手寫 寫不了就說思想 集合框架內容及常用實現類 set,list他們的常用實現類 map,重點講了hashmap 執行緒池synchronized和lock區別 了解哪些設計模式?寫一下生產者消費者模式 手寫sql 給乙個表 查出給定分數段學生人數 5g檔案,2g記憶體給他排序怎麼...

馬克思的兩面性 來自網友

今天在群裡跟朋友談著談著,聊到了馬克思主義的兩面性,搜尋後發現,有位總結得很棒,貼上到此處,若侵聯絡我刪除.我自己的看法是 群裡的朋友發了這張,我立即聯絡到的是分而治之的哲理,可能是最近看演算法看得比較多了,心裡一直繞不開分而治之,看什麼東西都是分而治之,再聯絡到最近看的一本書,講的是有限與無窮的關...

架構師 開發者的經驗財富兩面性

前幾天,看了白鴉的 一匹更快的馬 感受最深的一點就是 很多時候經驗就給自己就地畫了乙個圈,限制了自己的思維方式,扼殺了創新的萌芽。從開發者,到架構設計實現,到架構設計,豐富的經驗積累是每個程式設計師的財富,但是如何使用好經驗,在什麼時候用經驗,正式這筆財富價值最大化,再次積累的關鍵。就程式開發三個方...