Java 多线程学习笔记(一)

一、进程和线程(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