多线程测试

编写多线程程序,主线程中开启两个线程,一个线程打印十个偶数随机数,一个线程打印十个奇数随机数.
代码如下:
#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;
}

运行结果如图:

 

posted @ 2022-11-10 09:27  20201208史逸霏  阅读(31)  评论(0)    收藏  举报