并发
计算机用户想当然地认为他们的系统一次可以做不止一件事,他们设想他们可以继续在文字处理器中工作,而其他应用程序则下载文件、管理打印队列和流音频,即使是单个应用程序通常也希望一次完成多个任务。例如,流式音频应用程序必须同时从网络上读取数字音频、解压缩、管理回放并更新其显示,甚至文字处理器应始终准备好响应键盘和鼠标事件,无论重新格式化文本或更新显示有多繁忙,可以执行此类操作的软件称为并发软件。
Java平台的设计初衷是为了支持并发编程,在Java编程语言和Java类库中提供基本的并发支持,从5.0版开始,Java平台还包含高级并发API,本课程介绍了平台的基本并发支持,并总结了java.util.concurrent包中的一些高级API。
进程和线程在并发编程中,有两个基本的执行单元:进程和线程,在Java编程语言中,并发编程主要涉及线程,但是,进程也很重要。
计算机系统通常具有许多活动进程和线程,即使在只有单个执行核心的系统中也是如此,因此在任何给定时刻只有一个线程实际执行,单个核心的处理时间通过称为时间切片的OS功能在进程和线程之间共享。
对于具有多个处理器或具有多个执行核心的处理器的计算机系统变得越来越普遍,这极大地增强了系统并发执行进程和线程的能力 — 但即使在没有多个处理器或执行核心的简单系统上,并发也是可能的。
进程进程具有独立的执行环境,进程通常具有完整的私有基本运行时资源集,特别是,每个进程都有自己的内存空间。
进程通常被视为程序或应用程序的同义词,但是,用户看作的单个应用程序实际上可能是一组协作进程,为了促进进程之间的通信,大多数操作系统都支持进程间通信(IPC)资源,例如管道和socket,IPC不仅用于同一系统上的进程之间的通信,还用于不同系统上的进程。
Java虚拟机的大多数实现都作为单个进程运行,Java应用程序可以使用ProcessBuilder对象创建额外进程,多进程应用程序超出了本课程的范围。
线程线程有时被称为轻量级进程,进程和线程都提供执行环境,但创建新线程所需的资源比创建新进程要少。
线程存在于进程中 — 每个进程至少有一个线程,线程共享进程的资源,包括内存和打开文件,这使高效但可能有问题的通信。
多线程执行是Java平台的基本特性,每个应用程序至少有一个线程 — 或几个,如果你计算执行内存管理和信号处理等任务的“系统”线程的话。但是从应用程序员的角度来看,你只从一个线程开始,称为主线程,该线程具有创建额外线程的能力,我们将在下一节中进行演示。
下一篇:Thread对象文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/73003.html
摘要:快照,带线程命令,是显示全部进程,是显示线程,全格式输出显示进程树,不加显示所有实时快照推荐程度按数字从小到大。 有时候好好的程序放到生产服务器上一段时间后,就会发现服务器响应缓慢,进而进一步发现是cpu过高,于是就慌了,造成cpu过高的原因很多,不过大多是由于资源吃紧造成,例如:sql执行过慢,程序里存在死循环,数据库连接未释放,网络阻塞导致的第三方框架代码出现死循环,大量的操作导致...
摘要:在这个示例中我们使用了一个单线程线程池的。在延迟消逝后,任务将会并发执行。这是并发系列教程的第一部分。第一部分线程和执行器第二部分同步和锁第三部分原子操作和 Java 8 并发教程:线程和执行器 原文:Java 8 Concurrency Tutorial: Threads and Executors 译者:BlankKelly 来源:Java8并发教程:Threads和Execut...
阅读 3193·2021-11-18 10:02
阅读 3417·2021-10-11 10:58
阅读 3324·2021-09-24 09:47
阅读 1095·2021-09-22 15:21
阅读 3858·2021-09-10 11:10
阅读 3254·2021-09-03 10:28
阅读 1723·2019-08-30 15:45
阅读 2096·2019-08-30 14:22