Java笔记---易混淆的概念(二:线程、进程、任务)

原创 2016年03月05日 22:05:37

一、前言

在《Java编程思想》并发编程一章学习中,遇到3个概念,也就是线程、进程和任务。对这几个概念的理解比较模糊,因此花了点时间,查了下关于这几个概念的信息,总算是理解了。

二、概念区分

咱就按一一介绍下这些个概念。

2.1 进程

  1. 常常被定义为运行中的程序。
  2. 按Java编程思想上的概念来说,进程是运行在它自己的地址空间内的自包容的程序
  3. 一个程序可以有多个启动进程。
  4. 一个程序至少有一个进程,一个进程至少有一个线程
  5. 在OS中,把进程作为资源分配的基本单位

进程
从图可以看到,以Chrome浏览器为例,一个Chrome浏览器程序就启动了多个进程,从资源管理器就可以看到进程各自的PID。记住进程可以是来自各种程序、系统和应用程序的单独进程,也可以是来自被分解为很多进程的应用或程序

2.2 线程

  1. 轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元
  2. 在OS中,把线程作为独立运行和独立调度的基本单位
  3. 线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源
  4. 线程存在于进程之中,一个进程有若干个线程
  5. 线程可以驱动任务

2.3 任务

任务是这三个概念中最抽象的。记住:任务 ≠ 进程 ≠ 线程。那么任务是什么?

  1. 它是一个一般性的术语,指由软件完成的一个活动。
  2. 一个任务既可以是一个进程, 也可以是一个线程。

所以,多任务 ≠ 多进程 ≠ 多线程,三者抽象的级别根本就不一样。

三、进程与线程的区别

3.1 独立性

  1. 对于进程:各进程是独立的,各自拥有内存空间,一个进程所拥有的数据和变量只属于它自己
  2. 对于线程:同一进程中的多个线程之间是共享同一块内存空间,共享相同的代码和全局数据(但每个线程各有其自己的堆栈,由于堆栈是每个线程一个,因此局部变量对每一线程来说是私有的

3.2 是否可独立执行

进程可以独立运行,但线程不能够独立执行。为什么呢?
原因:进程拥有完备的数据空间和代码空间,而线程比进程更小,基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,因此线程必须必须依存在应用程序中。

一定要记住:虽然OS把线程作为独立运行和独立调度的基本单位,但是实际上线程并不能独立运行

3.3 上下文切换效率

线程上下文切换速度比进程上下文切换要快得多

版权声明:博客编写不易,转载时请注明出处,Thank you very much!

相关文章推荐

Android基本概念: 应用, 任务, 进程, 和线程

在大多数操作系统里,存在独立的一个1对1的可执行文件(如Windows里的exe文件), 它可以产生进程,并能和界面图标、应用进行用户交互。但在Android里,这是不固定的,理解将这些分散的部分如何...

vc++笔记-----MFC环境下的多任务、进程和线程

12.1.1 Windows 3.x的协同多任务   在16位的Windows 3.x中,应用程序具有对CPU的控制权。只有在调用了GetMessage、PeekMessage、WaitMessag...

JAVA学习笔记49——线程概念+进程、线程区别+创建进程三种方法

最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。 本篇开始讲线程,先来介绍一下程序、进程、线程的概念,其实学过《操作系...

Java千百问_01基本概念(006)_线程和进程有什么区别

点击进入_更多_Java千百问1、进程是什么进程(process)是具有一定独立功能的程序,操作系统利用进程把工作划分为一些功能单元。进程是进行资源分配和调度的一个独立单位。它还拥有一个私有的虚拟地址...

java学习5---Java 的多线程,程序、进程和线程的概念

1、程序,进程,线程的概念 程序是计算机指令集,它以文件的形式存储在计算机磁盘上。 进程是程序在自身地址空间运行的活动,是资源申请,调度和独立运行的单位。一个程序可以由多个进程。 线程:是进程中...

多任务的优点 进程 线程

  • 2009年03月22日 19:50
  • 3.51MB
  • 下载

[android基础知识] 之二: 任务、进程和线程的区别

android 中 任务、进程和线程的区别 任务、进程和线程     关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。...

进程线程的概念,讲的很详细

  • 2011年04月14日 08:33
  • 31KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java笔记---易混淆的概念(二:线程、进程、任务)
举报原因:
原因补充:

(最多只允许输入30个字)