【Linux】从零开始认识多线程 --- 线程概念与底层实现
在Linux中,线程通常被视为轻量级进程(lightweight processes),它们由内核进行调度,并共享某些资源(如文件描述符和信号处理)与其父进程(即进程)。
线程的创建和销毁代价较小,因此线程也被称为是“计算资源”。线程之间的同步和数据共享通常需要程序员手动管理,以确保数据的一致性和代码的正确性。
在Linux中,可以使用pthread
库来创建和管理线程。以下是一个简单的例子,展示了如何在C语言中创建和销毁一个线程:
#include <stdio.h>
#include <pthread.h>
void* thread_function(void* arg) {
printf("Hello from the thread!\n");
return NULL;
}
int main() {
pthread_t thread;
int ret;
// 创建线程
ret = pthread_create(&thread, NULL, &thread_function, NULL);
if (ret != 0) {
// 创建线程失败
perror("pthread_create error:");
return 1;
}
// 等待线程结束
pthread_join(thread, NULL);
printf("Thread has finished execution.\n");
return 0;
}
在这个例子中,我们首先包含了必要的头文件,然后定义了一个线程函数thread_function
,它只是简单地打印一句话。在main
函数中,我们创建了一个新线程,并传入了线程函数和参数。创建成功后,main
函数会等待线程完成其任务。
编译时需要链接pthread
库,使用gcc编译器可以加上-lpthread
选项:
gcc -o thread_example thread_example.c -lpthread
运行程序后,你将看到新线程创建并执行,然后再回到主线程,打印出相应的信息。
评论已关闭