笔记《Oracle官方并发教程》1.进程和线程

文章目录


在并发编程中,有两个基本的执行单元:进程和线程。进程是资源分配的最小单位,线程时CPU调度的最小单位。

多处理器或者多核多处理器(一个处理器有多个核)的计算机现在很普遍,可以用多线程来提高性能。

不过在单核的计算机中,也有许多活动的进程和线程。在单核计算机中,任意时刻只有一个线程在运行,CPU通过时间片来分配。

进程

进程具有一个独立的执行环境。通常情况下,进程拥有一个完整的、私有的基本运行资源集合。特别地,每个进程都有自己的内存空间。

一个单独的应用可以一个进程,也可以是多个协作的进程集合。为了便于进程间通信,一般操作系统都支持IPC(进程间通信),比如pipes和sockets。IPC不仅可以支持同一个系统上的通信,也可以支持不同系统间的进程通信。

大多数的Java虚拟机是单进程运行的(Most implementations of the Java virtual machine run as a single process. )。不过Java应用程序可以用ProcessBuilder 对象来建立额外的进程。这里我们不讨论多进程的应用程序。

线程

线程有时候又叫做轻量级进程(lightweight processes)。进程和线程都会提供一套执行环境,不过创建线程需要的资源比创建进程要少。

线程是挂在进程下的,每个进程至少有一个线程。同一个进程下的不同线程,共享进程的资源,包括内存和打开的文件。这样效率很高,不过会有潜在的问题:线程间通信。

多线程执行是Java平台的基本特征。每个应用至少会有一个线程 - 或几个,如果算上“系统”线程的话,比如内存管理和信号处理等。不过从程序员的视角来看,你只是启动了一个线程:main线程。这个线程有能力创建其他额外的线程,我们之后会讲。

参考资料

并发编程网 – ifeve.com/oracle-java-concurrency-tutorial

https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值