m4s-converter终极指南:3分钟解锁B站缓存视频,永久珍藏你的数字记忆 [特殊字符]
2026/5/11 14:58:33
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)退出后系统自动回收资源