在Linux系统中,进程作为系统资源分配的最小单位,而线程作为系统调度的最小单位。也就是说,线程更加接近执行体的概念。但是线程和进程各自有优缺点,进程方便系统资源的管理与维护,但是执行创建进程的系统开销较大,通常为线程创建系统开销的几百倍,而线程则刚好相反,线程的系统开销小,并发性更好。因此线程是一种更加“节俭”,更高效的一种机制。
线程的创建
在Linux系统中,线程是通过POSIX提供的线程库创建的,它与进程中的其他线程共享数据段,但线程拥有自己的线程栈以及独立的运行序列。Linux线程的创建实在内核外进行的,有POSIX提供的线程库实现。在进程创建时,内核提供的两个系统调用分别为_clone()和fork()最终都用不同的参数对应到do_fork()这个内核API。do_fork()提供很多参数选项,即CLONE_VM(共享内存空间)、CLONE_FS(共享文件系统信息)、CLONE_FILES(共享文件描述符表)、C

在Linux系统中,线程作为调度单位,相比进程创建开销小,效率高。线程通过POSIX线程库创建,与进程共享数据段但有自己的线程栈。Linux线程被称为轻量级进程,因为它们使用do_fork()调用并设置共享属性,创建“进程”共享运行环境。线程管理采用“一对一”模型,核外pthread库负责大部分操作,内核仅处理调度。
最低0.47元/天 解锁文章
641

被折叠的 条评论
为什么被折叠?



