Java™ 教程(进程和线程)

栏目: Java · 发布时间: 6年前

内容简介:计算机用户想当然地认为他们的系统一次可以做不止一件事,他们设想他们可以继续在文字处理器中工作,而其他应用程序则下载文件、管理打印队列和流音频,即使是单个应用程序通常也希望一次完成多个任务。例如,流式音频应用程序必须同时从网络上读取数字音频、解压缩、管理回放并更新其显示,甚至文字处理器应始终准备好响应键盘和鼠标事件,无论重新格式化文本或更新显示有多繁忙,可以执行此类操作的软件称为并发软件。Java平台的设计初衷是为了支持并发编程,在Java编程语言和Java类库中提供基本的并发支持,从5.0版开始,Java平

并发

计算机用户想当然地认为他们的系统一次可以做不止一件事,他们设想他们可以继续在文字处理器中工作,而其他应用程序则下载文件、管理打印队列和流音频,即使是单个应用程序通常也希望一次完成多个任务。例如,流式音频应用程序必须同时从网络上读取数字音频、解压缩、管理回放并更新其显示,甚至文字处理器应始终准备好响应键盘和鼠标事件,无论重新格式化文本或更新显示有多繁忙,可以执行此类操作的软件称为并发软件。

Java平台的设计初衷是为了支持并发编程,在 Java 编程语言和Java类库中提供基本的并发支持,从5.0版开始,Java平台还包含高级并发API,本课程介绍了平台的基本并发支持,并总结了 java.util.concurrent 包中的一些高级API。

进程和线程

在并发编程中,有两个基本的执行单元:进程和线程,在Java编程语言中,并发编程主要涉及线程,但是,进程也很重要。

计算机系统通常具有许多活动进程和线程,即使在只有单个执行核心的系统中也是如此,因此在任何给定时刻只有一个线程实际执行,单个核心的处理时间通过称为时间切片的OS功能在进程和线程之间共享。

对于具有多个处理器或具有多个执行核心的处理器的计算机系统变得越来越普遍,这极大地增强了系统并发执行进程和线程的能力 — 但即使在没有多个处理器或执行核心的简单系统上,并发也是可能的。

进程

进程具有独立的执行环境,进程通常具有完整的私有基本运行时资源集,特别是,每个进程都有自己的内存空间。

进程通常被视为程序或应用程序的同义词,但是,用户看作的单个应用程序实际上可能是一组协作进程,为了促进进程之间的通信,大多数操作系统都支持进程间通信(IPC)资源,例如管道和socket,IPC不仅用于同一系统上的进程之间的通信,还用于不同系统上的进程。

Java虚拟机的大多数实现都作为单个进程运行,Java应用程序可以使用 ProcessBuilder 对象创建额外进程,多进程应用程序超出了本课程的范围。

线程

线程有时被称为轻量级进程,进程和线程都提供执行环境,但创建新线程所需的资源比创建新进程要少。

线程存在于进程中 — 每个进程至少有一个线程,线程共享进程的资源,包括内存和打开文件,这使高效但可能有问题的通信。

多线程执行是Java平台的基本特性,每个应用程序至少有一个线程 — 或几个,如果你计算执行内存管理和信号处理等任务的“系统”线程的话。但是从应用 程序员 的角度来看,你只从一个线程开始,称为主线程,该线程具有创建额外线程的能力,我们将在下一节中进行演示。


以上所述就是小编给大家介绍的《Java™ 教程(进程和线程)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UCD火花集

UCD火花集

UCDChina / 人民邮电出版社 / 2009 / 25.00元

本书收集了UCDChina上线以来推出的13个话题,内容涵盖了产品设计的全部流程,按顺序集结到第一到第十三章中,讨论了如何研究用户、如何将用户需求应用到产品设计中、如何传达和协作。在第十四章,几位设计师分享了生活中的UE故事。第十五章,列举了一些实例和实践者的观点。本书适合有一定工作经验,从事产品设计、产品策划、交互设计、视觉设计、用户研究、前端开发、网站运营,以及所有与互联网有关的从业人员阅读。一起来看看 《UCD火花集》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具