Linux下线程与进程的区别

linux下线程 1.线程简介       线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在unix system v及sunos中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
      线程是程序执行流的最小单元。一个标准的线程由线程id,当前指令指针pc,寄存器集合和堆栈组成。线程是进程的实体,是被系统独立调度和分配的基本单位。一个线程可以创建和撤销另一个线程,同一进程的多个线程之间可以并发执行。线程由就绪、阻塞、运行三种基本状态。每一个程序至少有一个线程,若程序只有一个线程,那就是程序本身。
      在同一进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的地址空间(进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址;此外,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。
2.线程与进程区别       进程是资源分配的基本单位。所有与该进程有关的资源,都被记录在进程控制块pcb中。以表示该进程拥有这些资源或正在使用它们。
      另外,进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。
      与进程相对应,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。
      通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。
      线程与进程的区别可以归纳为以下4点:
      1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
      2)通信:进程间通信ipc,线程间可以直接读写进程数据段(如全局变量)来进行通信需要进程同步和互斥手段的辅助,以保证数据的一致性。
      3)调度和切换:线程上下文切换比进程上下文切换要快得多。
      4)在多线程os中,进程不是一个可执行的实体。
      进程和线程运行状态:


日本政府修改对韩出口管理条例,或利好中国显示及半导体产业相关企业
首款采用Raspberry Pi定制芯片的微控制器开发板 Raspberry Pi Pico即将登陆e络盟
5G基站信号能发射多远?
氢燃料电池重卡助力宜家打造绿色物流网络
EtherCAT运动控制边缘控制器功能简介和自定义API封装例程
Linux下线程与进程的区别
关于模拟信号采样与AD转换的简单介绍
别想了,高考机器人靠的是人工智能程序而不是百度搜索!
基于液-固摩擦电纳米发电机的微流控芯片,用于微液滴参数的无创自动力监测
飞利浦电须刀SP9851详测 众多电须刀当中的佼佼者
绘制与识读电气控制线路原理图遵循的原则
电子工程师12个入门级建议,蕴意深刻令人沉思新手老鸟都值得一看!
socket是什么意思_socket编程是什么意思_socket详解
联发科哭了!高通大招:白菜价卖芯片全面压制
36氪首发-获近亿元B轮融资,「乐客VR」将以联营模式落地超1000家门店
金山云王育林:在云计算的长跑中释放更大价值
集成电路的组成部分是什么
电子技术博物馆可以让设计师获得灵感
乐Max2、红米4X、360N5、一加3T,性价比之选值得购买!
初创公司利用深度学习助力医生检测痴呆症