有关线程

来源:互联网 发布:淘宝达人刷一万粉丝 编辑:程序博客网 时间:2024/05/20 22:38

子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环次,如此循环50次,试写出代码。

#include <stdio.h>#include <pthread.h>#include <stdlib.h>int flag = 0;int count = 1;void * thread_func(void *arg){while(count < 51){if((flag > -1) && (flag < 3)){printf("%d.child pthread is running…………\n",count);count++;flag++;}else{sleep(1);}}while(count == 51){printf("child pthread exit!\n");exit(0);}}int main(){pthread_t m_thread;void * thread_result;int ret;ret = pthread_create(&m_thread,NULL,thread_func,&count);if(ret != 0){perror("thread create failed!\n");exit(EXIT_FAILURE);}while(count < 51){if((flag > 2) && (flag < 9)){printf("%d.main pthread is running…………\n",count);count++;flag++;}else{flag = 0;sleep(1);}}printf("\nwaiting for thread to finish...\n");ret = pthread_join(m_thread,&thread_result);if(ret != 0){perror("thread join failed!\n");exit(EXIT_FAILURE);}    return 0;}

0 0