JAVA中的进程与线程
2016-02-25 00:02
218 查看
传统的DOS系统是单进程处理模式,如果出现病毒,系统马上崩溃;Windows系统是多进程处理模式,即使出现病毒,系统也可以正常运行。对于IO设备,CPU等计算机资源,在一个时间段中可以给多个进程使用,在一个时间点上,只能给一个进程使用。
所谓进程,就是一段程序的执行过程,是操作系统动态执行的基本单元。程序本身是一个没有生命的实体,只有处理器赋予程序生命时,它才是一个活的实体,并称之为进程。
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。
a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
c.调度和切换:线程上下文切换比进程上下文切换要快得多。
d.在多线程OS中,进程不是一个可执行的实体。
此文部分内容来自百度经验。
所谓进程,就是一段程序的执行过程,是操作系统动态执行的基本单元。程序本身是一个没有生命的实体,只有处理器赋予程序生命时,它才是一个活的实体,并称之为进程。
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。
a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
c.调度和切换:线程上下文切换比进程上下文切换要快得多。
d.在多线程OS中,进程不是一个可执行的实体。
此文部分内容来自百度经验。
相关文章推荐
- 【分享】高手Java核心技术学习笔记
- eclipse 中使用Git
- Java printf用法
- java web 一键分享
- java web项目启动加载顺序
- 3.7 Struts2综合应用实例--添加学生信息
- 3.7 Struts2综合应用实例的附件
- Spring切入点表达式常用写法
- Eclipse SVN插件检出Src下面的包变成了文件夹解决
- 怎么像maven工程一样设置普通Java工程的目录
- springmvc 自定义转换器
- java 获取配置文件
- windows eclipse远程连接hadoop集群并提交任务运行
- Java中的Map List Set等集合类
- Java疯狂讲义第五章笔记
- HDU2001计算两点间的距离(C,Java用DecimalFormat格式控制)
- java发送Email代码实现
- java学习日记——Inner Class(内部类)
- java多线程-CountDownLatch
- HDU2000ASCII码排序(C,Java两个版本)