进程和线程

译自 oracle java tutorials

这 Java 教程是为 JDK 8 编写的,示例和小练习不会利用后序版本中的改进 api

进程和线程

在并发编程中,有两个基本的执行单位:进程和线程。在 Java 语言中,并发编程总是和线程有关。虽然如此,进程也是非常重要的。一个计算机系统常常有很多活跃的进程和线程。即使是对于那些只有一个内核并且在给定时刻只有一个线程在运行的系统来说,也是这样的。单核系统通过操作系统的时间分片特性来分享这单个进程。越来越多的计算机系统有多处理器或者是多核处理器。这增大了系统并发可用进程和线程的容量。实际上,单核系统也可以实现并发。

进程

一个进程拥有私有的执行环境,一个进程有一个完整的私有的运行资源,尤其是每个进程有他们自己的内存空间。
进程经常被看做一个程序或者是一个应用。用户看到的一个应用实际上看是一组操作过程。帮助进程之间沟通,大部分的操作系统支持进程间通信(IPC),比如管道和套接字。IPC实际上不仅仅可以用于同系统内的进程间通信,也可以用于不同主机上的进程之间通信。大部分种类的 JVM 作为单个进程运行。 一个 Java 的应用可以使用 ProcessBuilder 对象创建额外的进程,多进程应用不在本节讨论范围内。

线程

线程有时候被称为轻量级的进程。进程和线程都提供一个执行环境,但是创建一个线程所需的资源要比创建一个进程的资源少。线程一定包含在进程中,每个进程中至少包含一个线程。线程分享进程的内存,文件等资源。这使线程之间的通信变得有效,但同时也带了潜在的问题。
多线程执行是 Java 平台所必须的属性。每一个应用至少需要一个线程,或至少多个线程,如果你算上系统中做内存管理和信号处理的线程的话。但是从应用编写者的角度来看,你只是启动了一个被称为主线程,这个线程有能力创建其他线程,正如我们将要在下一章节描述的那样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值