1樓:網友
這是有可能當主執行緒(即main函式)執行完後,新建立的執行緒還沒來得及執行,所以應該使主執行緒先暫停,即使用sleep()函式。
#include
#include
char testdir[100];
dword winapi fun1( lpvoid lpparameter )
strcpy(testdir,"this is a test dir");
messagebox(null,testdir,"執行緒",0);
return 0;
main()
handle thread1;
thread1=createthread(null,0,fun1,null,0,null);
closehandle(thread1);
printf("this is just a test:ok!");
sleep(4000);
2樓:網友
你在main()的return 0;前加上system("pause");
就ok了。
c語言如何實現多執行緒同時執行
3樓:惠企百科
1、點選選單欄的「project」選項卡,下拉選單的最後一項「project options...是對當前工程的的屬性進行設定的。
2、選擇彈出對話方塊中的「compiler」選項卡。
3、將其中的「runtime library」的選擇改為「multithreaded (lib)」。
4、將看到對話方塊最下面的文字框中發生了一些變化,新增了「-mt」選項,這與編譯器一開始所報的錯誤提示給出的解決方案一致。
5、頁面的設定完成後,再對該原始碼進行編譯時,就能愉快地看到編譯完全成功。
c語言多執行緒的操作步驟
4樓:愛潔哥
執行緒建立。
函式原型:intpthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict attr,void *(start_rtn)(void),void *restrict arg);
返回值:若是成功建立執行緒返回0,否則返回錯誤的編號。
形式引數:pthread_t*restrict tidp要建立的執行緒的執行緒id指標;const pthread_attr_t *restrict attr建立執行緒時的執行緒屬性;void *(start_rtn)(void)返回值是void型別的指標函式;void *restrict arg start_rtn的形參。
執行緒掛起:該函式的作用使得當前執行緒掛起,等待另乙個執行緒返回才繼續執行。也就是說當程式執行到這個地方時,程式會先停止,然後等執行緒id為thread的這個執行緒返回,然後程式才會斷續執行。
函式原型:intpthread_join(pthread_tthread, void **value_ptr);
引數說明如下:thread等待退出執行緒的執行緒號;value_ptr退出執行緒的返回值。
返回值:若成功,則返回0;若失敗,則返回錯誤號。
執行緒退出。函式原型:voidpthread_exit(void *rval_ptr);
獲取當前執行緒id
函式原型:pthread_tpthread_self(void);
互斥鎖建立pthread_mutex_init;銷燬pthread_mutex_destroy;加鎖pthread_mutex_lock;解鎖pthread_mutex_unlock。
條件鎖建立pthread_cond_init;銷燬pthread_cond_destroy;觸發pthread_cond_signal;廣播pthread_cond_broadcast;等待pthread_cond_wait。
執行緒、c語言問題,【高分+**等】
5樓:空雪夢見
每條線代表乙個程序的生命時間(執行流程),這裡一共有8條線所以……
之前那張圖和這裡有個地方不一樣,因為之前那一題是計算輸出的hello的個數,然後你要注意之前那題裡面並不是每個程序輸出乙個printf……最頂端的程序(就是最初啟動的)會輸出四個hello的。看這張圖就明白:最頂端下來的線一共執行了三次fork,而其他的線,有的執行了兩次有的執行了一次還有的沒執行……
6樓:網友
這會派生出三個程序,如果包括自身,一共是四個程序。
7樓:
原程序a
第一次fork後變成a 和 b
a和b都繼續執行,遇到第二次fork
a變成a和c
b變成b和d
abcd都繼續執行,遇到第三次fork
a變成a和a1
b變成b和b1
c變成c和ca
d變成d和d1
所以最多會有八個程序。
C 多執行緒問題,C 多執行緒程式設計例項
實現應該不難,但你描述的有點不知道你要幹嘛。c 多執行緒程式設計例項 c 中構建多執行緒應用程式 高手進 c 多執行緒處理 非同步多執行緒記憶體釋放主要靠自己,c 的垃圾 機制是,只有當程式段執行完畢後,垃圾 機制才對程式開闢的記憶體進行垃圾 而多執行緒內的程式,特別是客戶端連線,只要客戶端沒有斷開...
C 多執行緒 Mutex 類的問題。
你這種方式是比較合理的方式,lpclassname 是要查的,而且也是固定的。如果你不用 lpclassname 可以用程式的標題intptr hwnd findwindow null,標題 showwindowasync hwnd,1 setforegroundwindow hwnd c 多執行緒...
關於C語言問題,關於C語言的問題
迴圈3次 5成立,結果 x 1,y 4,z 2。5成立,結果 x 2,y 3,z 1。5成立,結果 x 3,y 2,z 0。5失敗且不再執行 右側的 x,退出迴圈。所以最後結果是x 3 y 2 z 1,b正確。關於c語言的問題 巨集定義與賦值不同,而是字串的帶入,因此參與計算時要特別注意計算的優先順...