好了,認識、分析完問題,就是解決問題了:
多執行緒在c#中並不難實現。它有乙個命名空間:system.threading,提供了多執行緒的支援。
要開啟乙個新執行緒,需要以下的初始化:
threadstart startdownload = new threadstart( download );
//執行緒起始設定:即每個執行緒都執行download(),注意:download()必須為不帶有引數的方法
thread downloadthread = new thread( startdownload ); //例項化要開啟的新類
downloadthread.start();//開啟執行緒
1.如何控制線程的數量?
3.如何判斷執行緒結束?
4.如何控制線程結束?
下面就這幾個問題提出解決方法:
1.執行緒數量我們可以通過for迴圈來實現,就如同當年初學程式設計的打點程式一樣。
比如已知使用者指定了n(它是乙個int型變數)個執行緒吧,可以用如下方法開啟五個執行緒。
thread downloadthread;
這個聲名應為類級,這樣也就為其它方法控制項它們提供了可能
threadstart startdownload = new threadstart( download );
//執行緒起始設定:即每個執行緒都執行download()
downloadthread = new thread[ n ];//為執行緒申請資源,確定執行緒總數
for( int i = 0; i < n; i++ )//開啟指定數量的執行緒數
if ( times > n ) //如果已經嘗試夠了次數,則退出程序
else//如果沒有嘗試夠次數
//進行下一步針對得到的url的處理
}4.這個問題相對簡單,因為在問題一中已經建議,將執行緒聲名為類級陣列,這樣就很易於控制。只要用乙個for迴圈即可結束。**如下:
for( int i = 0; i < n; i++ )//關閉指定數量n的執行緒數
好了,乙個蜘蛛程式就這樣完成了,在c#面前,它的實現原來如此簡單。
這裡筆者還想提醒讀者:筆者只是提供了乙個思路及乙個可以實現的解決方案,但它並不是最佳的,即使這個方案本身,也有好多可以改進的地方,留給讀者思考。
最後說明一下我所使用的環境:
winxp sp2 pro
vfp 9.0
visual studio 2003 .net中文企業版
編寫可靠的多執行緒蜘蛛程式
thursday,24.august 2006,05 52 14技術 此篇專為qq群 17371752 搜尋引擎.資料.蜘蛛 中的朋友做主題研討之用 1.蜘蛛程式長啥樣?蜘蛛程式的是搜尋引擎中最關鍵的後台程式之一,它必須十分可靠,可以長期執行而無需經常維護。但是我往往看到許多朋友開始做蜘蛛程式的時候...
用Thread建立多執行緒的C 程式
比較亂,素材也是來自網路,如果有什麼問題可以聯絡我處理。這份 給出了一種簡單建立多執行緒的方法,建立執行緒時傳入函式位址即可。當然還有別得方法像createthread,自認為該方法比較複雜 include includeusing namespace std void foo 簡單的無參函式 vo...
用C 實現多執行緒Mutex鎖
準備知識 1,核心物件互斥體 mutex 的工作機理,waitforsingleobject函式的用法,這些可以從msdn獲取詳情 2,當兩個或更多執行緒需要同時訪問乙個共享資源時,系統需要使用同步機制來確保一次只有乙個執行緒使用該資源。mutex 是同步基元,它只向乙個執行緒授予對共享資源的獨佔訪...