請教關於C語言的多執行緒問題

2025-02-03 01:20:23 字數 2452 閱讀 4161

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語言的問題 巨集定義與賦值不同,而是字串的帶入,因此參與計算時要特別注意計算的優先順...