Re: [閒聊] C語言程式練習
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間14年前 (2011/08/11 17:15)推噓0(0推 0噓 3→)留言3則, 1人參與討論串2/3 (看更多)
// 測試線程分段呼叫
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#include <time.h>
int display_syst2(void* nn)
{
int ntt = *((int *)nn); // 這裡應該也可以寫成 int ntt = (int) nn;
system("date");
return 1;
}
int display_syst(void* ii)
{
int j;
pthread_t tth;
int nt=*((int *)ii); // 同上, int nt = (int) ii;
void *resultt;
sleep(nt);
for(j=1;j<=3;j++) // 每段做三次
if(pthread_create(&tth,NULL,(void *)display_syst2,(void *)&j)==0)
printf("the %d-%d thread ok.¥n",nt,j);
pthread_join(tth,&resultt);
return 1;
}
int main()
{
pthread_t th;
int i;
void *result;
for(i=1;i<=3;i++) // 分三段呼叫
if(pthread_create(&th,NULL,(void *)display_syst,(void *)&i)==0)
printf("%d ok.¥n",i);
if(pthread_join(th,&result)==0)
printf("all over.¥n");
return 0;
}
然後 nobu 有教我要 compile 這支程式,要加參數
> gcc test.c -lpthread
執行結果:
1 ok.
2 ok.
3 ok.
the 1-1 thread ok.
the 1-2 thread ok.
the 1-3 thread ok.
8 11 17:04:04 CST 2011
8 11 17:04:04 CST 2011
8 11 17:04:04 CST 2011
the 2-1 thread ok.
8 11 17:04:05 CST 2011
the 2-2 thread ok.
8 11 17:04:05 CST 2011
the 2-3 thread ok.
8 11 17:04:05 CST 2011
the 3-1 thread ok.
8 11 17:04:06 CST 2011
the 3-2 thread ok.
the 3-3 thread ok.
8 11 17:04:06 CST 2011
8 11 17:04:06 CST 2011
all over.
上面就稍微看的出來,date 執行時 printf 也在做執行,
這就是線程的好處,9 個工作可以分三段執行,而不用排
隊等前面執行完才做下一個。
我的練習就做到這裡而已,再下去的已經超乎我的能力了
,那不是一支「我一個人」就有辦法從頭寫到尾的程式,
如果我有這個能力我就不會是個在今天這個職位上、領這
份微薄薪水的人了。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 101.13.136.121
→
08/11 17:38, , 1F
08/11 17:38, 1F
→
08/11 17:39, , 2F
08/11 17:39, 2F
→
08/11 17:39, , 3F
08/11 17:39, 3F
※ 編輯: laechan 來自: 122.117.9.179 (08/11 20:17)
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
-9
35
15
23