功能:主線程建立乙個副執行緒,然後主線程負責將鍵盤輸入的內容寫到buffer,然後通知副執行緒將資料列印,列印完後,副執行緒通知主線程繼續從輸入緩衝區中將讀到的字元寫到buffer陣列。當輸入quit命令時,主線程退出,副執行緒也會隨著主線程的結束而自動結束。
#include #include #include #include #include char buffer[128];sem_t sem1;
sem_t sem2;
void *fun(void * arg)
printf(">>>%s",buffer);
if(sem_post(&sem1) == -1) //讀完了後傳送寫訊號
}}int main(void)
if(sem_init(&sem2, 0, 0) == -1) //將讀訊號初始化為0
if(-1 == pthread_create(&thread, null, fun, null)) //建立執行緒
dofgets(buffer, 128, stdin);
if(sem_post(&sem2) == -1) //寫之後傳送讀資源
}while(strncmp(buffer, "quit", 4) != 0); //輸入quit,主線程結束,副執行緒也就退出
Java 執行緒內 遞迴 Bug 一例
乙個執行緒的run方法裡使用遞迴方法,出了bug。private boolean ispass string creationid else thread.sleep 1000 60 falg catch interruptedexception e ispass creationid else r...
演算法優化一例
本文將以排序演算法中的插入排序為例,介紹優化演算法,編制高效程式的方法。人們通常用於排序手中橋牌的方法是一次考慮一張牌,將它插入到已經排序過的牌的適當位置中 時刻讓它們保持有序 在計算機實現中,我們需要將較大的元素移到右邊,為插入的元素準備空間,然後再在空位置上插入該元素。該演算法的通常的乙個實現如...
delegate 委託一例
using system using system.collections.generic using system.linq using system.text namespace consoletest public static void englishgreeting string snam...