[并发编程]什么是进程和线程

(一)什么是进程和线程

最早的计算器其实没操作系统,只能输入,计算和输出功能,用户输入一个指令,计算机完成操作,大部分时候计算机都在等待用户输入指令,这样处理性能很低效,因为人的输入速度远远比不上计算机的运行速度.

为了解决手工操作带来的低效,批处理操作系统应运而生,批处理就是先把要执行的指令预先写下来,(写到纸上,磁盘,磁带等等),形成一个指令清单,这个指令清单就是我们说的任务,然后将任务交给计算机去执行,批处理操作系统负责读取”任务”中的指令清单并进行处理,计算机执行的过程中无需等待人手工操作,这样性能有很大提升,
但是有很明显缺点,计算器一次只能执行一个任务,如果某个任务需要从IO设备(比如磁盘)读取大量数据,在IO的过程中CPU其实是空闲的,这个空闲的时间其实可以进行其它的操作的.
为了进一步提升性能,发明了进程的东西,用进程来应对一个任务,每个任务有自己独立的内存空间,进程间互不相关,由操作系统来调度.
多进程让多个任务能够并行处理任务,但本身还有缺点,单个进程内部只能串行处理,例如,一个餐馆管理进程,排位,点菜,买单,服务员调度等子任务必须能够并行处理,否则就会出现某个客单买单时间比较长,比如说刷信用卡刷不出来,其它客人都不能点菜的情况.为了解决这个问题,发明了线程,线程是进程内部的子任务,但这些子任务都共享同一份进程数据.为了保证数据的正确性,又发明了互斥锁机制.有了多线程后,操作系统调度的最小单位就变成了线程,而进程编程了操作系统分配资源的最小单位.

进程是程序运行资源分配的最小单位

简述:正在运行的程序就成为进程

进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着,同时,每个进程还占有某些系统资源如CPU时间,内存空间,文件,文件,输入输出设备的使用权等等。换句话说,当程序在执行时,将会被操作系统载入内存中。

线程是CPU调度的最小单位,必须依赖于进程而存在

简述: 线程是进程中的一个任务,用完成某个特定功能的.

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的、能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

线程无处不在

任何一个程序都必须要创建线程,特别是Java不管任何程序都必须启动一个main函数的主线程; Java Web开发里面的定时任务、定时器、JSP和 Servlet、异步消息处理机制,远程访问接口RM等,任何一个监听事件, onclick的触发事件等都离不开线程和并发的知识。

线程和进程的区别

根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位

在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

内存分配方面:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。

包含关系:没有线程的进程可以看做是单线程的,如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值