多執行緒實現對同乙個或多個檔案的讀寫操作

2021-07-04 16:51:58 字數 881 閱讀 4720

程式用途:實現多個執行緒對同一檔案的讀寫操作

程式**: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...