關於使用執行緒還是程序的一些討亂

2021-04-12 20:04:46 字數 433 閱讀 3301

至少在linux上,多thread程式和多程序程式,對於能不用thread的要盡量不用。

拿我說的例子:client數目有最大數值的(不是越多越好的),連線時間比較長的這一類服務,

用多thread幾乎沒有什麼意義。

thread的優勢是建立開始執行比程序快些(pthread_create比fork), 一旦執行起來,程序的切換和thread的切換差別沒有什麼。排程也都按程序做的。

thread因為共享了記憶體使得物理記憶體節省。然而程序本身也有共享的物理頁(比如共享庫部分)。

還有一開始用多thread在那裡等著(池)。對於連線數量小並且固定的服務意義不大。

正是因為共享記憶體,使得多thread程式的除錯麻煩,執行穩定性不如程序。

所以我建議,能不用thread盡量不用。如果必須用,也可以先不用--用程序,等都除錯好了後在改thread。也不晚。

程序與執行緒的一些知識

介紹程序 執行緒的概念 多程序和多執行緒的區別 python中對多程序和多執行緒的不同的實現方式。一 程序 程序簡單地說是乙個程式在計算機系統中執行的乙個過程,是作業系統資源分配的基本單位,從更深的層面講,是作業系統的一種抽象。如你在電腦上執行了qq這個軟體,這就是乙個程序。二 執行緒 然而,乙個程...

關於程序問題的一些思考

程序fork 函式可能返回三個值 0 該程序為子程序 因為它沒有子程序,故為0 程序標識 該程序為父程序 負數 建立程序失敗 在做上機作業的時候,沒有思考到位,導致出現了邏輯錯誤 最終輸出兩組sub 1 一組sub 2 一組parent 期望輸出為兩組sub 2 一組sub 1 一組parent 後...

關於僵死程序的一些理解

在每個程序退出如呼叫exit或return的時候,核心釋放該程序所有的資源,包括開啟的檔案,占用的記憶體等,但是程序並沒有立馬就消失,而是仍然為其保留一定的資訊 包括程序號,退出狀態,執行時間,直到父程序通過wait waitpid來處理時才進行釋放。此時該程序處於殭屍狀態,該程序成為僵死程序 zo...