1、執行緒的建立
筆者利用delphi語言進行了程式的開發和編寫, 該語言的優點之一是它有一整套執行緒同步方法,可以很方便地使用。
乙個程序的主線程是由作業系統自動生成,如果要讓乙個主線程建立額外的執行緒,在winapi中,可以呼叫createthread來完成。在delphi中,所有的執行緒類可以從tthread類派生得到,如下:
type
optimizethread = class(tthread)
private
docexec:tadocommand;
caseid:integer; //優化方案**
protected
procedure execute; override;
procedure doanalyse;virtual;abstract;
end;
這樣,就從執行緒基類tthread派生了乙個自己的optimizethread類,並在此類中新增了新的變數和方法。然後,使用者還需要從optimizethread類中派生出乙個可供使用的執行緒物件,如下:
scheoptimizethread = class (optimizethread)
private
count :integer; //記錄航班的分組
protected
procedure doanalyse;override;
public
constructor create(exec:tadocommand;caseid,count:integer);
end;
2、執行緒的掛起和恢復
當執行緒被掛起時,cpu不分配時間片給該執行緒,執行緒停止在掛起命令發出時的**處,直到被允許繼續進行。想要掛起執行緒只要呼叫執行緒的suspend方法,或者設定執行緒物件的suspended為true。若要喚醒執行緒,則只要呼叫執行緒的resume方法,或者設定執行緒物件的suspended為false即可。
3、執行緒的終止
在多執行緒裡查詢資料庫並填充dataGrid
public delegate void mydelegate datatable dt private void b ianjia click object sender,system.eventargs e catch system.exception ex void threadwork el...
多執行緒資料庫插入速度測試
共享記憶體計數的時候沒有鎖定,會造成少量的更新遺失,不過對整體來說,遺失的資料量沒有大的影響。每個程序都單獨連線資料庫 configruation parameters tbl id 0 count per process 10 concurrents 100 logpath tmp s.log h...
python使用多執行緒查詢資料庫
當資料量過大時,乙個程式的執行時間就會主要花費在等待單次查詢返回結果,在這個過程中cpu無疑是處於等待io的空閒狀態的,這樣既浪費了cpu資源,又花費了大量時間 當然這裡主要說多執行緒,批量查詢不在考慮範圍,總會存在不能批量查詢的情況 在這種非密集型運算 及大量占用cpu資源 的情況下在python...