linux C 多線程

1、線程創建

             int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void* (*routine)(void*), void *arg);

2、合併線程

           int pthread_join(pthread_t thread, void **retval);

3、獲取線程id

          pthread_t pthread_self(void);

4、結束當前線程

          void pthread_exit(void* retval);

5、指定取消線程

          int pthread_cancel(pthread_t thread);

 

例子:創建一個線程


#include <stdio.h>
#include <pthread.h>

void *thread(void *arg)
{
 int i = 0;
 pthread_t id = pthread_self();
 
 printf("*(int *)arg = %d\n", *(int *)arg);
 printf("pthread id = 0x%X\n", (unsigned int)id);
 
 while (i < 10)
 {
  printf("this is thread!\n");
  sleep(1);
 }
 
 return (void *)0; 
}

int main(int argc, char **argv)
{
 pthread_t id;
 int arg = 100;
 void *pthread_ret;
 
 pthread_create(&id, NULL, thread, &arg);
 while (1)
 {
  printf("this is main pthread!\n");
  sleep(1);
 }
 pthread_join(id, &pthread_ret);
 printf("pthread_ret = %d\n", (int)pthread_ret);
 
 return 0;
}

編譯時要加上-lpthread,否則編譯不過。

 

 

發佈了19 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章