linux 创建线程

本文介绍如何在Ubuntu环境下使用Eclipse C++创建线程,包括使用libpthread.so动态库的方法,并演示了如何通过pthread_join使主线程等待子线程完成。

这篇博文就只说下,在ubuntu下 eclipse C++环境之下怎么创建线程

#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<errno.h>

// the thread function
//libpthread.so

void * thread(void* arg)
{
  pthread_t newid=0;
   newid=pthread_self();
  printf("this is a new thread %u",newid);
  return NULL;
}
int main()
{
   pthread_t thid;
   printf("main thread is %u\n",(int)pthread_self());
  if( pthread_create(&thid,NULL,&thread,NULL)!=0)
   {
      printf("thread create error %u\n",errno);
      exit(1);
   }
   sleep(1);
   exit(0);
}

这里面的代码只需要注意一点,在输出线程ID的时候一定要注意就是%u,才行,否则的话,会出问题,这是其一,其二呢,就是eclipse下线程的创建需要使用libpthread.so动态库,在eclipse中怎样使用呢?
在Libraries(-l)中添加pthread即可
,这样就完成了我们需要的操作

如果我们想要主线程等待子线程完成之后在进行唤醒,可以使用pthread_join操作,这样就不用再进行sleep了

/*
 * main.cpp
 *
 *  Created on: Jun 26, 2014
 *      Author: john
 */
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<unistd.h>
#include<errno.h>
// this is thread function
void* thread_function(void* a)
{
    pthread_t thread_id=0;
    printf("this is thread id %u\n",pthread_self());
    return NULL;
}
int main()
{
	int *status=0;
    pthread_t newid=0;
    printf("this is main thread id %u,\n",pthread_self());
    if(pthread_create(&newid,NULL,thread_function,NULL)==0)
    {
        printf("thread create succefully\n");
    }
    pthread_join(newid,(void**)&status);
    printf("the thread exit code is %d",*status);
    return NULL;
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世纪殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值