线程与进程

进程与线程

进程线程
ProcessThread
一段程序执行的实例一个进程的执行
资源分配的基本单元CPU调度的基本单元
进程控制块PCB、程序段、数据段线程控制块TCB、堆栈、寄存器及共享进程所有资源
进程间相互独立同一进程内各线程共享资源,不同进程线程不可见
进程间通讯IPC读进程数据段
调度慢调度快

程序与进程

程序是数据与指令的集合,是静态的,可永久存在;进程是程序在处理机上的一次执行过程,是动态的,具有一定的生命周期。

总结

程序加载到内存中,并且被系统分配资源后,称为进程;而进程只是资源的集合体,它的执行依赖于线程,线程是CPU的调度对象。

线程出现的原因

1 在许多应用中同时发生着多种活动,某些活动有时会被阻塞,通过将这些应用分解成多个线程的执行,程序的设计会变得简单;
2 进程是资源的拥有者,由于其在创建、撤销与切换伴随着大量数据的操作,若要实现同时执行多个不同操作,其对空间时间消耗很大,所以引入了轻量级的线程(Light Weight Process, LWP)也称为线程(Thread);
3 线程的运行都是占用了CPU的,对于性能来说并未增强,但是若果操作伴随着I/O处理(CPU速度远大于I/O速度),此时多线程的允许彼此的重叠进行,从而加快了应用的执行速度。


创建

进程线程描述
forkpthread_create创建
exitpthread_exit退出

父子进程
父进程使用fork()函数创建一个子进程。若成功,子进程返回0,父进程返回子进程标记;否则,返回-1。
在创建过程中,子进程会完全拷贝父进程的资源,每个进程都启动一个从代码的同一位置开始的线程,另个线程同时执行。

进程的状态

进程三种基本状态

-运行态 running,占有CPU;
-就绪态 ready,由于其他进程占有CPU,处于等待状态;
-阻塞态 blocked,等待某种事件的触发,否则不能运行;

进程的切换如下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值