子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
2016-12-04 20:43
417 查看
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
#include <unistd.h>
#define LOOP 50
pthread_mutex_t mylock = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t mycond = PTHREAD_COND_INITIALIZER;
int num = 0;
int parm_0 = 0;
int parm_1 = 1;
void * th_fun(void * arg)
{
int i, j;
for(i = 0;i < LOOP; i++)
{
pthread_mutex_lock(&mylock);
while(parm_0 != num)
{
pthread_cond_wait(&mycond, &mylock);
}
printf("thread:\n");
for(j = 0;j < 10; j++)
{
printf("%d", j);
}
printf("\n");
num = (num + 1) % 2;
pthread_mutex_unlock(&mylock);
pthread_cond_signal(&mycond);
}
return (void *) 0;
}
int main()
{
int i, k;
pthread_t id;
void *ret;
pthread_create(&id, NULL, th_fun, NULL);
for(i = 0; i < LOOP; i++)
{
pthread_mutex_lock(&mylock);
while(parm_1 != num)
{
pthread_cond_wait(&mycond, &mylock);
}
printf("main:\n");
for(k = 0; k < 3; k++)
{
printf("%d", k + 6);
}
printf("\n");
num = (num + 1) % 2;
pthread_mutex_unlock(&mylock);
pthread_cond_signal(&mycond);
}
pthread_join(id, &ret);
return 0;
}
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
#include <unistd.h>
#define LOOP 50
pthread_mutex_t mylock = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t mycond = PTHREAD_COND_INITIALIZER;
int num = 0;
int parm_0 = 0;
int parm_1 = 1;
void * th_fun(void * arg)
{
int i, j;
for(i = 0;i < LOOP; i++)
{
pthread_mutex_lock(&mylock);
while(parm_0 != num)
{
pthread_cond_wait(&mycond, &mylock);
}
printf("thread:\n");
for(j = 0;j < 10; j++)
{
printf("%d", j);
}
printf("\n");
num = (num + 1) % 2;
pthread_mutex_unlock(&mylock);
pthread_cond_signal(&mycond);
}
return (void *) 0;
}
int main()
{
int i, k;
pthread_t id;
void *ret;
pthread_create(&id, NULL, th_fun, NULL);
for(i = 0; i < LOOP; i++)
{
pthread_mutex_lock(&mylock);
while(parm_1 != num)
{
pthread_cond_wait(&mycond, &mylock);
}
printf("main:\n");
for(k = 0; k < 3; k++)
{
printf("%d", k + 6);
}
printf("\n");
num = (num + 1) % 2;
pthread_mutex_unlock(&mylock);
pthread_cond_signal(&mycond);
}
pthread_join(id, &ret);
return 0;
}
相关文章推荐
- (某培训机构的练习题)子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
- 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
- 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
- 面试题:子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次,请写出程序
- 子线程循环10次,接着主线程循环5次,接着又回到子线程循环10次,接着再回到主线程又循环5次,如此循环50次,请写出程序。
- 【Java面试题】30 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序
- 面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次。
- 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程100次,如此循环50次
- 多线程学习--案例-子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- c++实现子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 机试题-〉子线程循环10次,接着回到主线程循环100次,又接着回到子线程循环10次,再接着回到主线程又循环100次,如次循环50次,请写出程序
- java多线程笔试题:子线程循环10次;接着主线程循环20次,接着又子线程循环10次,接着再回到主线程又循环20次,如此循环50次,请写出程序。