编写linux下的c程序,创建两个线程,第一个线程打印数字1到5,第二个线程打印数字6到10;
时间: 2024-02-27 20:59:15 浏览: 102
好的,下面是一个简单的示例代码,实现了您的需求:
```c
#include <stdio.h>
#include <pthread.h>
void* thread1(void* arg) {
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
return NULL;
}
void* thread2(void* arg) {
for (int i = 6; i <= 10; i++) {
printf("%d ", i);
}
return NULL;
}
int main() {
pthread_t tid1, tid2;
pthread_create(&tid1, NULL, thread1, NULL);
pthread_create(&tid2, NULL, thread2, NULL);
pthread_join(tid1, NULL);
pthread_join(tid2, NULL);
return 0;
}
```
在主函数中,我们创建了两个线程`tid1`和`tid2`,分别执行`thread1`和`thread2`函数。这两个函数分别打印数字1到5和数字6到10。`pthread_join`函数用于等待线程执行完毕,避免程序过早退出而导致线程被强制终止。
相关问题
创建两个线程,第一个线程打印数字1-5第二个线程打印数字6-10linux下编写 c语言
好的,这是一个简单的多线程例子,使用pthread库实现:
```c
#include <stdio.h>
#include <pthread.h>
void* print1to5(void* arg) {
for(int i = 1; i <= 5; i++) {
printf("%d\n", i);
}
return NULL;
}
void* print6to10(void* arg) {
for(int i = 6; i <= 10; i++) {
printf("%d\n", i);
}
return NULL;
}
int main() {
pthread_t t1, t2;
pthread_create(&t1, NULL, print1to5, NULL);
pthread_create(&t2, NULL, print6to10, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
return 0;
}
```
在主函数中,我们创建了两个线程t1和t2,分别使用pthread_create函数创建。第一个参数是指向线程标识符的指针,第二个参数是线程属性,我们使用默认值NULL,第三个参数是指向线程函数的指针,最后一个参数是传递给线程函数的参数,这里我们不需要传递任何参数,所以传入NULL。
在线程函数中,我们只是简单地循环打印数字1-5和6-10。
最后,我们使用pthread_join函数等待线程t1和t2结束,释放它们占用的资源。
编写Linux下的c程序,创建两个线程,第一个线程打印数字1到5,第二个线程打印数字6到10,并给出在终端上在源文件test3-4.c编译成3-4的编译命令
下面是一个简单的示例代码,实现了你的要求。
```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库。
阅读全文