1线程概念:线程和进程之间的关系,线程间可共享资源,线程间非共享资源,线程的优缺点

简介:  1线程概念 1.1什么是线程 1.1.2线程和进程的关系         1.轻量级进程(light-weightprocess),也有PCB,创建线程使用底层函数和进程一样,都是clone. 2.从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表示相同的 3.进程可以蜕变成线程 4.在美国人眼里,线程就是


1线程概念

1.1什么是线程

1.1.2线程和进程的关系

        1.轻量级进程(light-weightprocess,也有PCB,创建线程使用底层函数和进程一样,都是clone.

2.从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表示相同的

3.进程可以蜕变成线程

4.在美国人眼里,线程就是寄存器和栈

5.Linux下,线程是最小的执行单位;进程是最小的分配资源的单位

 

查看LWP号(通过这个命令可以查看到线程号),命令是:

ps –eLf (其中,下面的LWP列表示的就是线程号)

ps –Lf pid(通过这种方式查看某个进程下的具体线程信息)

 

调度图

调度单位为线程

1.1.3.线程间可共享的资源

1.文件描述符表

2每种信号的处理方式

3当前工作目录

4用户ID和组ID

5内存地址空间

以下同样是共享的:

text  代码区

data  数据区

bss   

共享库   (调用共享库可以用mmap

线程间共享资源

1.1.4线程间非共享资源

1.线程id

2.处理器现场和栈指针

3.独立的栈空间

4.errno变量

5.信号屏蔽字

6.调度优先级

      1. 线程优缺点

优点

提高程序的并发性

开销小,不用重新分配内存

通信和共享数据方便

 

缺点

线程不稳定(库函数实现不稳定)

线程调试比较困难(gdb支持不好)

线程无法使用unix经典事件,例如信号

      1. pthread manpage

        man –k pthread

安装pthread相关manpage

        sudoapt-get install manpages-posix manpages-posix-dev

目录
相关文章
|
12天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
27天前
|
消息中间件 安全 Linux
线程同步与IPC:单进程多线程环境下的选择与权衡
线程同步与IPC:单进程多线程环境下的选择与权衡
57 0
|
29天前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
73 0
|
13天前
|
算法 Java 开发者
Java中的多线程编程:概念、实现与性能优化
【4月更文挑战第9天】在Java编程中,多线程是一种强大的工具,它允许开发者创建并发执行的程序,提高系统的响应性和吞吐量。本文将深入探讨Java多线程的核心概念,包括线程的生命周期、线程同步机制以及线程池的使用。接着,我们将展示如何通过继承Thread类和实现Runnable接口来创建线程,并讨论各自的优缺点。此外,文章还将介绍高级主题,如死锁的预防、避免和检测,以及如何使用并发集合和原子变量来提高多线程程序的性能和安全性。最后,我们将提供一些实用的性能优化技巧,帮助开发者编写出更高效、更稳定的多线程应用程序。
|
6天前
|
调度 Python
Python多线程、多进程与协程面试题解析
【4月更文挑战第14天】Python并发编程涉及多线程、多进程和协程。面试中,对这些概念的理解和应用是评估候选人的重要标准。本文介绍了它们的基础知识、常见问题和应对策略。多线程在同一进程中并发执行,多进程通过进程间通信实现并发,协程则使用`asyncio`进行轻量级线程控制。面试常遇到的问题包括并发并行混淆、GIL影响多线程性能、进程间通信不当和协程异步IO理解不清。要掌握并发模型,需明确其适用场景,理解GIL、进程间通信和协程调度机制。
22 0
|
21天前
|
安全 Linux API
Android进程与线程
Android进程与线程
18 0
|
27天前
|
存储 算法 Linux
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
25 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 限制进程资源 ulimit命令 使用指南
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 限制进程资源 ulimit命令 使用指南
38 0
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
31 0
|
29天前
|
消息中间件 Linux 调度
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
67 0