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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章