thread

/***************************************


  • 内容:多线程编程例子
  • 时间:2015.7.17
  • 作者:chank
  • 本例子来自华清远见课本
    *———————————————————————————–
    ***************************************/

include

include

include

define THREAD_NUMBER 3

define REPEAT_NUMBER 5

define DELAY_TIME_LEVELS 10.0

void *thrd_func (void *arg)
{
int thrd_num = (int)arg;
int delay_time = 0;
int count = 0;
printf(“thread %d is starting \n”,thrd_num);
for (count = 0; count < REPEAT_NUMBER; count++)
{
delay_time = (int) (rand () * DELAY_TIME_LEVELS / (RAND_MAX)) + 1;
sleep(delay_time);
printf(“\tthread %d : job %d delay = %d\n”,
thrd_num, count, delay_time);
printf(“thread %d finished \n”, thrd_num);
pthread_exit(NULL);

}

}

int main(void)
{
pthread_t thread [THREAD_NUMBER];
int no = 0, res;
void *thrd_ret;
srand(time(NULL));

/*创建新线程*/
for (no = 0; no < THREAD_NUMBER; no++)
{
    res = pthread_create(&thread[no], NULL, thrd_func, (void*) no);
    if (!res != 0)
    {
        printf("create thread %d failed \n",no);
        exit(res);

//#if res = pthread_create (&thread[no],NULL, thrd_func,
}

    return 0;
}

printf("create treads success \n waiting for threads to finish...\n");
for ( no = 0; no < THREAD_NUMBER; no++)
{
        if(!res)
    {
        printf("thread %d joined\n", no);
    }
    else
    {
        printf("thread %d join failed\n", no);
    }
}

}

编译

linux 编译的时候要加上 -lpthread

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值