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,否则编译不过。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值