程式用途:實現多個執行緒對同一檔案的讀寫操作
程式**:test.c
/*該程式在ubuntu下測試通過*/
#include#include#include#include#include#include#includeconst int buf_size=1024;
const int buf_size2=1024*2;
/*獲取執行緒的id必須使用syscall,不能直接使用pthread_t
*pthread_t 的結構體實際是:
*typedef struct ptw32_handle_t;
*/pid_t gettid()
/*檔案讀取執行緒,實現對乙個或多個檔案的讀寫*/
void * func(void * args)
else
buf=(char *)malloc(size);
printf("the tid is %d, malloc size is %d\n", tid, size);
while(!feof(fp))
printf("thread [%d] read count is %d, read size is %d\n", tid, read_count, count);
pthread_exit("thread exit");
}void main()
}for(i=0; i<4; i++)
pthread_join(ntid[i], null);
}
編譯:gcc test.c -ltprhead
程式執行結果:
多個執行緒呼叫同乙個執行緒函式
多個執行緒呼叫同乙個執行緒函式 如題,能這樣嗎?因為有很多個操作,但是這些操作都是一樣的,所以想用相同的執行緒函式,但是感覺執行時執行緒還是乙個乙個執行,並沒有提高速度,應該是我理解錯了!老大些幫幫忙,給個建議問題補充 我的意思是執行緒處理函式,剛剛找了點資料,覺得這想法沒有錯,只要執行緒裡面不用全...
解決多執行緒讀寫同乙個檔案的異常
多執行緒公用乙個物件時,也會出現和公用 類似的問題,這種問題就不應該使用lock關鍵字了,這裡需要用到system.threading中 的乙個類monitor,我們可以稱之為監視器,monitor提供了使執行緒共享資源的方案。monitor類可以鎖定乙個物件,乙個執行緒只有得到這把鎖才可以對該物件...
用執行緒池實現多執行緒向同乙個檔案寫入資料
如下 用佇列存放每乙個執行緒執行的結果值。queueresult new linkedlist list service.getalldata 從資料庫查詢各個省之間的排列組合。system.out.println list.size 大約2萬條 建立執行緒池 固定數量的執行緒池 executors...