编写Linux下的c程序,创建两个线程,第一个线程打印数字1到5,第二个线程打印数字6到10,并给出在终端上在源文件test3-4.c编译成3-4的编译命令
时间: 2024-03-01 20:51:55 浏览: 63
下面是一个简单的示例代码,实现了你的要求。
```c
#include <stdio.h>
#include <pthread.h>
void *print_first(void *arg) {
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
printf("\n");
pthread_exit(NULL);
}
void *print_second(void *arg) {
for (int i = 6; i <= 10; i++) {
printf("%d ", i);
}
printf("\n");
pthread_exit(NULL);
}
int main() {
pthread_t thread1, thread2;
int ret1, ret2;
// 创建两个线程
ret1 = pthread_create(&thread1, NULL, print_first, NULL);
ret2 = pthread_create(&thread2, NULL, print_second, NULL);
if (ret1 || ret2) { // 创建线程失败
printf("创建线程失败!\n");
return 1;
}
// 等待两个线程结束
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
return 0;
}
```
在此示例中,我们使用pthread_create()函数创建了两个线程,分别打印数字1到5和数字6到10,然后使用pthread_join()函数等待两个线程结束。请注意,在Linux下编译源文件test3-4.c为3-4的命令为:
```
gcc -o 3-4 test3-4.c -lpthread
```
其中,-o参数指定生成可执行文件的名称,-lpthread参数用于链接pthread库。