Java 多线程学习笔记(一)

2018-06-27 09:46:25来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、进程和线程

(1)进程概念的引入

为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了“进程”的概念。---摘之计算机操作系统(第四版)汤小丹编著

(2)进程概念

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。----摘之百度百科

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

(3)线程概念

线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程

(4)进程和线程的关系

    1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

    2、资源分配给进程,同一进程的所有线程共享该进程的所有资源。
    3、CPU分给线程,即真正在CPU上运行的是线程。

(5)进程和线程区别

  • 地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
  • 资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。
  • 执行过程:每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
  • 线程是处理器调度的基本单位,但是进程不是。
  • 两者均可并发执行

123456

(6)进程和线程优缺点

 1、程执行开销小,但是不利于资源的管理和保护。线程适合在SMP机器(双CPU系统)上运行。

 2、开销大,但是能够很好的进行资源管理和保护。进程可以跨机器前移。

(7)进程和线程使用时机

     1、对资源的管理和保护要求高,不限制开销和效率时,使用多进程。

     2、要求效率高,频繁切换时,资源的保护管理要求不是很高时,使用多线程。

      参考:https://www.cnblogs.com/zhuzhu2016/p/5804875.html

                      https://www.cnblogs.com/lgk8023/p/6430592.html

                     https://blog.csdn.net/wujiafei_njgcxy/article/details/77098977

                    https://www.cnblogs.com/yuanchenqi/articles/6755717.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Spring入门

下一篇:从.Net到Java学习第七篇——SpringBoot Redis 缓存穿透