qfedu-linux-advanced-level/day6/homework/h4.c

37 lines
881 B
C

// 编写一个程序, 创建两个线程, 一个线程打印奇数, 另一个线程打印偶数, 要求交替打印1到100的数字。
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
void *printOdd(void *data) // 打印奇数
{
for (int i = 1; i <= 100; i++)
{
usleep(100 * 1000); // 睡眠 0.1 秒
if (i % 2 == 1)
printf("奇数: %d\n", i);
}
return NULL;
}
void *printEven(void *data) // 打印偶数
{
for (int i = 1; i <= 100; i++)
{
usleep(100 * 1000); // 睡眠 0.1 秒
if (i % 2 == 0)
printf("偶数: %d\n", i);
}
return NULL;
}
int main(int argc, char const **argv)
{
pthread_t tid1, tid2;
pthread_create(&tid1, NULL, printOdd, NULL);
pthread_create(&tid2, NULL, printEven, NULL);
pthread_join(tid1, NULL);
pthread_join(tid2, NULL);
return 0;
}