编写多线程程序,主线程中开启两个线程,一个线程打印十个偶数随机数,一个线程打印十个奇数随机数.
代码如下:
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
void *mythread1(void)
{
int i,j,n=0;
for(i=0;i<50;i++)
{
j=rand()%100;
if(j % 2==0){
printf("This is the 1st pthread,the number is %d\n",j);
n++;
}
sleep(1);
if(n==10)
{
return 0;
}
}
}
void *mythread2(void){
int i,j,n=0;
for(i=0;i<50;i++)
{
j=rand()%100;
if(j % 2!=0){
printf("This is the 2nd pthread,the number is %d\n",j);
n++;
}
sleep(1);
if(n==10)
{
return 0;
}
}
}
int main(int argc, const char *argv[])
{
int i = 0;
int ret = 0;
pthread_t id1,id2;
ret = pthread_create(&id1, NULL, (void *)mythread1,NULL);
if(ret)
{
printf("Create pthread error!\n");
return 1;
}
ret = pthread_create(&id2, NULL, (void *)mythread2,NULL);
if(ret)
{
printf("Create pthread error!\n");
return 1;
}
pthread_join(id1,NULL);
pthread_join(id2,NULL);
return 0;
}
运行结果如图: