thread

来源:互联网 发布:淘宝如何找到卖家电话 编辑:程序博客网 时间:2024/06/16 21:30

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


  • 内容:多线程编程例子
  • 时间: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
原创粉丝点击