例程:下面通過乙個簡單例程example.c來展示linux下的c語言多執行緒操作。
/* example.c*/
#include
#include
void thread(void)
int i;
for(i=0;i<3;i++)
printf("this is a pthread./n");
int main(void)
pthread_t id;
int i,ret;
ret=pthread_create(&id,null,(void *) thread,null);
if(ret!=0){
printf ("create pthread error!/n");
exit (1);
for(i=0;i<3;i++)
printf("this is the main process./n");
pthread_join(id,null);
return (0);
編譯此程式:gcc example.c -lpthread -o example。
注意:上面的程式回出現錯誤的。
main.cpp:68: error: invalid conversion from 『void (*)()』 to 『void* (*)(void*)』
main.cpp:68: error: initializing argument 3 of 『int pthread_create(pthread_t*, const pthread_attr_t*, void* (*) (void*), void*)』
需要在最上面新增:typedef void *(*thread_proc)(void *);
然後:強轉ret = pthread_create(&id, null, (thread_proc)thread, null);
執行example得到如下結果(結果有多樣性,根據具體系統的呼叫演算法不同而不同):
this is the main process.
this is a pthread.
this is the main process.
this is the main process.
this is a pthread.
this is a pthread.
多執行緒 小例子
1 執行緒小例子 失去一日甚易,欲得回已無途!2016 11 17下午1 43 51 程序 可以包含乙個或者多個執行緒!cpu上 真正 執行的 是 執行緒!實現多執行緒的方法 01.繼承thread類 重寫run 02.實現runnable介面 重寫run 多執行緒 在單個程式中,同時執行多個執行緒...
C語言訪問webservice小例子
c語言訪問webservice小例子 近期做的乙個專案中,需要訪問webservice獲取一些json格式的資料。返回的頁面內容只是json格式的資料,並不像實際頁面那麼複雜。所以不想再引入工具庫,直接用socket簡單實現了。include include include include incl...
執行緒同步wait notify小例子
執行緒同步小例子 開啟兩個執行緒實現拿雞蛋 放雞蛋交叉進行public class dofunction catch interruptedexception e num system.out.println 拿雞蛋 notify public synchronized void setegg ca...