多執行緒概念
1.乙個正在執行的應用程式在作業系統中被視為乙個程序,程序可以包括多個執行緒。執行緒是作業系統分配處理器時間的基本單位
2.應用程式域是指進行錯誤隔離和安全隔離,在clr中執行,每個程式域都是單個執行緒啟動,但該程式域中的**可以建立附加應用程式域和附加執行緒
3.多執行緒的優點在於乙個執行緒阻塞的時候,cup可以執行其他的執行緒而不需要等待,這樣大大的提高了程式的執行效率。而缺點在於執行緒需要占用記憶體,執行緒越多占用的記憶體就多,多執行緒需要協調和管理,所以需要占用cpu時間以便跟蹤執行緒,執行緒之間對共享資源訪問會互相影響,所以得解決爭用共享資源的問題,執行緒太多,也會導致控制起來更複雜,最終導致很多程式的缺陷。
4.乙個程序可以建立多個執行緒以執行與該程序關聯的部分程式**,執行緒使用tread處理
c#單執行緒與多執行緒對比:
單執行緒:
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
using system.threading;
namespace stockes
public delegate void writetxt(char chr);//定義委託
public writetxus**uut writetxt;//宣告委託
public void write(string str, writetxt writes)//使用委託
} }
private void text1(char chr)
public void text2(char chr)
private void stratwrite()
if(checkbox2.checked)
} private void button1_click(object sender, eventargs e) } }
多執行緒、併發任務:
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
using system.threading;
namespace stockes
public delegate void writetxt(char chr);//定義委託
public writetxt writetxt;//宣告委託
public void write(string str, writetxt writes)//使用委託
} }
private void text1(char chr)
public void text2(char chr)
private void stratwrite()
} private void stratwrite1()
} private void button1_click(object sender, eventargs e) } }
本文標題: 簡單對比c#程式中的單執行緒與多執行緒設計
本文位址:
埠掃瞄小程式與單執行緒多執行緒對比(C 實現)
visual studio 2015中新建乙個工程,選擇windows窗體應用程式。老師提供了乙個完整的多執行緒版本的埠掃瞄器,於是我就自己寫了乙個單執行緒版本的埠掃瞄器,圖形介面模仿了老師的給出的設計 老師的版本在progerssbox下方還用了三個隱藏的lable來顯示埠號和當前掃瞄的埠,我這裡...
Python中單執行緒 多執行緒與多程序的效率對比實驗
python是執行在直譯器中的語言,查詢資料知道,python中有乙個全域性鎖 gil 在使用多程序 thread 的情況下,不能發揮多核的優勢。而使用多程序 multiprocess 則可以發揮多核的優勢真正地提高效率。對比實驗 資料顯示,如果多執行緒的程序是cpu密集型的,那多執行緒並不能有多少...
Python中單執行緒 多執行緒與多程序的效率對比實驗
python是執行在直譯器中的語言,查詢資料知道,python中有乙個全域性鎖 gil 在使用多程序 thread 的情況下,不能發揮多核的優勢。而使用多程序 multiprocess 則可以發揮多核的優勢真正地提高效率。對比實驗 資料顯示,如果多執行緒的程序是cpu密集型的,那多執行緒並不能有多少...