关于进程和线程的一点小知识~

线程: 运行 中的程序的调度单位,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。
另外,线程是 进程中的一个实体,是被 系统独立调度和分派的基本单位,线程自己不拥有 系统资源,只拥有一点在 运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和 撤消另一个线程,同一 进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在 运行中呈现出间断性。线程也有 就绪阻塞运行三种基本状态。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身
线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为 多线程
属性:
多线程 OS中,通常是在一个 进程 中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。线程具有以下属性。
1)轻型实体
线程中的实体基本上不拥有 系统资源,只是有一点必不可少的、能保证独立 运行的资源,比如,在每个线程中都应具有一个用于控制线程运行的 线程控制块 TCB,用于指示被执行指令序列的 程序计数器、保留 局部变量、少数状态参数和返回地址等的一组 寄存器堆栈
2)独立调度和分派的基本单位。
在多线程OS中,线程是能独立 运行的基本单位,因而也是独立调度和分派的基本单位。由于线程很“轻”,故线程的切换非常迅速且开销小。
3)可并发执行。
在一个 进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行。
4)共享 进程资源。
在同一 进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的 地址空间(进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址;此外,还可以访问进程所拥有的已打开 文件、定时器、 信号量机构等。
那么什么又是进程呢?

进程

线程和进程的区别在于,子进程和父进程有相同的代码段,不同的数据段,而多个线程则共享数据空间,每个线程有自己的执行堆栈程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。
通常在一个 进程 中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的 操作系统 中,通常都是把 进程 作为分配资源的基本单位,而把线程作为独立 运行 和独立 调度 的基本单位。由于线程比 进程 更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。
线程与 进程的区别可以归纳为以下4点:
1) 地址空间和其它资源(如打开 文件):进程间相互独立,同一进程的各线程间共享。某 进程内的线程在其它进程不可见。
2)通信: 进程间通信 IPC,线程间可以直接读写进程 数据段(如 全局变量)来进行通信——需要 进程同步和互斥手段的辅助,以保证数据的一致性。
3)调度和切换:线程上下文切换比进程上下文切换要快得多。
4)在 多线程OS中, 进程不是一个可执行的实体。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值