Skip to content
On this page

Linux线程


标签:linux/线程  

#TBD/0413

线程的概念

进程的缺陷

进程是程序一次执行的过程,它是资源管理的最小单位。

  1. 进程只能在一个时刻干一件事,如果同时干两件事或者多件事,进程就无能为力了。
  2. 程序在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程中有些不依赖于输入的数据,也将无法执行。

线程的优势

允许进程将所占有的资源从主体中剥离出来。

允许某些线程共享一部分进程的资源。

线程就是轻量的进程,它是程序执行的最小单元。

线程的概念

一个程序至少有一个进程,一个进程至少有一个线程。线程肯定是在进程中创建的。

一个进程只有一个主进程(main pthread),就是 main 函数,主线程可以创建多个对等线程(peer thread)。从创建的时间开始,这些线程是并发执行的。(主线程总是第一个执行,对等线的执行顺序不定。)

[!note] tldr

进程好比两个同学分别画圆和方,线程好比一个同学左手画圆右手画方。

生命周期

线程进程
创建pid = fork()pthread_create(xx,execf,xx,xx)
执行pid > 0 父进程执行
pid==0子进程执行
thread_exec()
结束exit()pthread_exit();//自杀
phtread_cancel();//他杀
回收wait(); // 阻塞回收
waitpid();//非阻塞回收
pthread_join();//阻塞回收
pthread_detach()//非阻塞回收

共享资源

全局变量,打开的文件描述符,用户 ID

私有资源

线程 ID(tid),系统相关的数据(函数运行环境),局部变量,私有栈

manpage 安装

bash
sudo apt-get install manpages-posix manpages-posix-dev

Linux 线程操作

Linux 线程操作

Last updated: