執行緒的相關操作放在中。
1.1我們定義乙個執行緒,首先要進行定義乙個函式,類似我們建立乙個a執行緒
void *thread_a(void *in)
1.2.建立乙個執行緒
pthread_t a;//宣告
pthread_create(&a,null,thread_a,(void*)0);//建立執行緒
1.3.建立3個執行緒並且列印(如果你列印1000個,並且睡一秒,會發現,這個程序實際上執行是無序的)
#include #include void *thread_a(void *in)
void *thread_b(void *in)
void *thread_c(void *in)
int main()
3.如果我們希望執行緒進行列印順序為c,b,a,那麼我們可以定義乙個訊號。
執行緒a等待執行緒2的訊號,執行緒2等待執行緒3的訊號
#include #include #include //sem_wait sem_init這些方法全在裡面
sem_t sem1;
sem_t sem2;
void *thread_a(void *in)
void *thread_b(void *in)
void *thread_c(void *in)
int main()
2.1.mutex互斥鎖的建立
互斥鎖的內容:我們要想建立乙個互斥鎖,首先是對這個mutex進行初始化操作。
互斥鎖的標頭檔案在中。
pthread_mutex_t mutex;//宣告乙個鎖
pthread_mutex_lock(&mutex);
pthread_mutex_unlock(&mutex);
//加鎖和解鎖操作
pthread_mutex_destory(&mutex);//銷毀鎖的操作
2.2.編寫乙個讀寫(執行緒分離)的程式,讀乙個空串,然後寫進另乙個陣列裡面
#include #include #include #include pthread_mutex_t mutex;
char buf[80],buf1[80];
int n,buf_has_item=0;
void writer_function(void)
pthread_mutex_unlock(&mutex);
}}void reader_function(void)
pthread_mutex_unlock(&mutex);
}
}
void *thread_reader(void *in)
int main()
C 建立 讀以及寫檔案操作
1.建立檔案 根路徑自己決定,如果是乙個專案一定有相關的api獲取該專案所在硬碟的完整物理路徑。建立檔案時一般先會判斷是否存在指定的檔案,沒有則建立,執行以下 後可檢視d盤根路徑。string path d string filename datetime.now.tostring yyyymmdd...
C 執行緒鎖使用全功略
前兩篇簡單介紹了執行緒同步lock,monitor,同步事件eventwaithandler,互斥體mutex的基本用法,在此基礎上,我們對 它們用法進行比較,並給出什麼時候需要鎖什麼時候不需要的幾點建議。最後,介紹幾個fcl中線程安全的類,集合類的鎖定方式等,做為對執行緒同步系列的完善 和補充。l...
c 執行緒鎖,mutex lock使用
為什麼要用執行緒鎖呢.比如當乙個執行緒再修改乙個變數,另乙個執行緒在讀取那個變數,那麼讀到的值可能是乙個無法 的值,因為有可能他在讀的時候另乙個執行緒正寫到一半.由於執行緒導致的bug會比較難查詢,因此寫乙個靠譜的執行緒鎖非常重要.總結一下mutex lock相關函式 int pthread mut...