企业信息化建设规划报告编写指南:从现状盘点到三年路线图
2026/9/19 16:10:43
Linux线程是轻量级进程(LWP),属于某个进程并共享其资源(如内存),但各自拥有独立的栈区。相比进程,线程的优势在于创建开销小(仅需分配8MB栈区,而进程需3GB空间)、并发度高,但稳定性较差——一个线程崩溃可能导致整个进程退出。
创建线程
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);thread: 返回线程IDattr: 线程属性(通常为NULL)start_routine: 线程执行的函数arg: 传递给函数的参数获取线程ID
pthread_t pthread_self(void);线程退出
void pthread_exit(void *retval); int pthread_cancel(pthread_t thread);资源回收
int pthread_join(pthread_t thread, void **retval); // 阻塞回收 int pthread_detach(pthread_t thread); // 自动回收用于保护临界资源,确保排他性访问:
pthread_mutex_t mutex; pthread_mutex_init(&mutex, NULL); // 初始化 pthread_mutex_lock(&mutex); // 加锁(原子操作) pthread_mutex_unlock(&mutex); // 解锁 pthread_mutex_destroy(&mutex); // 销毁实现线程间同步,支持PV操作:
sem_t sem; sem_init(&sem, 0, 1); // 初始化(二值信号量) sem_wait(&sem); // P操作(申请资源) sem_post(&sem); // V操作(释放资源) sem_destroy(&sem); // 销毁ps -eLo pid,ppid,lwp,stat,comm ps -eLfpthread_detach)退出后系统自动回收资源