进程和线程

在并发编程中,有两个基本的执行单元:进程和线程。在JAVA中,并发编程大多侧重的是线程。然而,进程也很重要。

一个计算机系统通常会有许多活动的进程和线程。即使是在仅仅拥有单个执行核的系统中也是如此,因此在任何特定的时刻这些系统中都有且只有一个线程在实际执行。线程和进程通过OS的时间片策略来共享单核处理器的处理时间。

如此,对计算机系统而言,拥有多个处理器或多核处理器变得越来越普遍。这在很大程度上加强了一个系统支持进程与线程并发执行的能力——当然在没有多个处理器或多核处理器的简单系统中,实现并发也是可以的。

进程

一个进程拥有独立的执行环境。每个进程一般都有一个完整、私有的基本运行时资源集合;尤其是,每个进程都有自己的内存空间。
进程常常被认为跟普通程序或应用程序是一样的。然而,用户看到的单个应用程序实际上也许只是合作进程集的子集。为了方便进程间通信,许多操作系统都支持进程间通信(IPC:Inter Process Communication)资源,如:管道和套接字机制。IPC不仅能被用来做同一系统中的进程间通信,也能用于不同系统中进程间的通信。

线程

线程有时候被称为轻量级进程。进程和线程都提供一个执行环境,但是创建一个新的线程所耗的资源要远比创建一个新的进程来的少。
线程存在于进程中——每个进程都至少拥有一个线程。线程可共享其所属进程的资源,包括:内存,打开的文件等。这样做提高了效率,但是也存在潜在的问题。
多线程执行是JAVA平台的一个基本特征。每个应用程序都至少拥有一个线程,当然如果算上那些像管理内存和信号处理的“系统”线程,也许会有好多个。但是从应用程序开发者的角度看,当你运行一个应用程序时,只开启了一个线程(main 线程:该线程又会创建一些额外的线程,下一篇《线程对象》中要讲到)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值