多執行緒技術在Delphi資料庫程式設計中應用 (2)

2021-04-06 19:53:12 字數 961 閱讀 1015

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...