当前位置: 首页 » 产品 » 微商货源 » 正文

Linux多线程编程

放大字体  缩小字体 发布日期: 2024-09-29 19:14   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:28
核心提示:  #define MAX 10  pthread_t thread[2];  pthread_mutex_t mut;  int number=0, i;  void *thread1()  {  printf

  #define MAX 10

  pthread_t thread[2];

  pthread_mutex_t mut;

  int number=0, i;

  void *thread1()

  {

  printf ("thread1 : I'm thread 1n");

  for (i=0; i < MAX; i++)

  {

  printf("thread1 : number=%dn",number);

  pthread_mutex_lock(&mut);

  number++;

  pthread_mutex_unlock(&mut);

  sleep(2);

  }

  printf("thread1 :主函数在等我完成任务吗?n");

  pthread_exit(NULL);

  }

  void *thread2()

  {

  printf("thread2 : I'm thread 2n");

  for (i=0; i < MAX; i++)

  {

  printf("thread2 : number=%dn",number);

  pthread_mutex_lock(&mut);

  number++;

  pthread_mutex_unlock(&mut);

  sleep(3);

  }

  printf("thread2 :主函数在等我完成任务吗?n");

  pthread_exit(NULL);

  }

  void thread_create(void)

  {

  int temp;

  memset(&thread, 0, sizeof(thread)); //comment1

  

  if((temp=pthread_create(&thread[0], NULL, thread1, NULL)) !=0) //comment2

  printf("线程1创建失败!n");

  else

  printf("线程1被创建n");

  if((temp=pthread_create(&thread[1], NULL, thread2, NULL)) !=0) //comment3

  printf("线程2创建失败");

  else

  printf("线程2被创建n");

  }

  void thread_wait(void)

  {

  

  if(thread[0] !=0) { //comment4

  pthread_join(thread[0],NULL);

  printf("线程1已经结束n");

  }

  if(thread[1] !=0) { //comment5

  pthread_join(thread[1],NULL);

  printf("线程2已经结束n");

  }

  }

  int main()

  {

  

  pthread_mutex_init(&mut,NULL);

  printf("我是主函数哦,我正在创建线程,呵呵n");

  thread_create();

  printf("我是主函数哦,我正在等待线程完成任务阿,呵呵n");

  thread_wait();

 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站