VC下利用多執行緒實現檔案的快速檢索

2021-03-31 08:56:57 字數 1146 閱讀 1136

[文章資訊]

馮傑2004-07-30

出處:天極網方舟

本文採用多執行緒技術實現檔案的快速搜尋,**量很少,執行效率極高

[正文]

1 2以下介紹其在vc平台下的具體實現:

1.搜尋用到兩個win32的兩個函式

handle findfirstfile(lpctstr lpfilename,lpwin32_find_data lpfindfiledata );

bool findnextfile( handle hfindfile, lpwin32_find_data lpfindfiledata );

2. 建立執行緒函式

首先要定義執行緒的引數結構用於檔案資訊的傳遞:

typedef struct tagthreadparam threadparam m_param;

因為執行緒要操縱全域性變數,所以定義互斥體:

cmutex m_mutexthreadcount,m_mutexthreadparam,m_mutexpath;

如果搜尋完畢或搜尋終止,要有事件通知,於是建立乙個事件:

cevent m_event(false,false,null,null);

uint uthreadcount=0;//產生的執行緒數

cstringarray m_strpatharray;//存放搜尋到的檔案路徑陣列

//執行緒函式

uint getfilepaththreadproc(lpvoid pparam)

doelse }

}while(::findnextfile( hfile,pinfo));

::findclose(hfile);

delete pinfo;

m_mutexthreadcount.lock();

uthreadcount--;

if(uthreadcount==0)

m_event.setevent();

m_mutexthreadcount.unlock();

return 0;}

1 2

Linux下利用多執行緒實現矩陣相乘的平行計算

現代的執行緒庫允許不同的執行緒執行在不同的處理器晶元上,從而實現真正意義上的並行。換句話說,如果你的機子是單核的,用多執行緒也沒不會提高執行效率。我的電腦是多核的,平行計算耗時0.56秒,但按照常規的序列計算方法只需要0.07秒。並行程式 include include include includ...

PHP利用CURL MULTI實現多執行緒

php中的curl multi一類函式可以實現同時請求多個url,而不是乙個乙個依次請求,這就類似乙個程序實現了多個執行緒的功能,因此可以使用php利用curl multi實現完成多執行緒類的任務,下面就乙個利用php curl multi多執行緒採集網頁為例來說明一下。檢視 列印01 02 功能 ...

VC多執行緒的同步

1.利用事件物件同步 事件分為 人工重置的事件物件和自動重置的事件物件。人工重置的事件物件 收到通知,等待的所以執行緒變為可排程執行緒。自動重置的事件物件 收到通知,等待的所以執行緒只有乙個變為可排程。同時作業系統會將事件物件設定為無訊號狀態。為了實現執行緒間的同步,不應該使用人工重置的事件物件,而...