创建一个linux C示例代码,有两个线程,分别打印字符串
时间: 2024-09-14 09:10:17 浏览: 36
linux c下log输出代码模板示例代码
创建一个简单的Linux C程序来演示如何使用线程打印字符串的示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
// 定义一个函数,作为线程执行的任务
void *print_string(void *ptr) {
char *str = (char *)ptr; // 将void指针转换为字符指针
printf("%s\n", str); // 打印传入的字符串
return NULL; // 线程函数返回void指针
}
int main() {
pthread_t thread1, thread2; // 定义两个线程标识符
// 创建第一个线程
if (pthread_create(&thread1, NULL, &print_string, "Hello from Thread 1!")) {
perror("Failed to create thread 1");
return -1;
}
// 创建第二个线程
if (pthread_create(&thread2, NULL, &print_string, "Hello from Thread 2!")) {
perror("Failed to create thread 2");
return -1;
}
// 等待两个线程完成
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
return 0; // 程序正常结束
}
```
这段代码定义了一个`print_string`函数,它接受一个`void*`类型的参数(这里实际上传递的是字符串的指针),然后打印出这个字符串。`main`函数中使用`pthread_create`函数创建了两个线程,每个线程都使用`print_string`函数作为它们的任务。每个线程都会打印出不同的字符串。通过`pthread_join`函数等待这两个线程完成后,程序才会正常结束。
请注意,在编译此程序时,需要链接线程库,使用以下命令:
```bash
gcc -o thread_example thread_example.c -lpthread
```
阅读全文