Java多线程

我们先来了解两个概念!!!!

1.什么是并发与并行

2.什么是进程与线程

1.什么是并发与并行

1.1并行:两个事情在同一时刻发生



1.2并发:两个事情在同一时间段内发生



并发与并行的区别:

1.并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。

2.并行是不同实体上的多个事件,并发是多个实体的不同事件

3.并行是多个处理器同时处理多个任务,并发是一个处理器“同时“处理多个任务

并发的同时是指宏观上的同时:

在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。

小科普

而在多个 CPU 系统中,则这些可以并发执行的程序便可以分配到多个处理器上(CPU),实现多任务并行执行, 即利用每个处理器来处理一个可以并发执行的程序,这样多个程序便可以同时执行。目前电脑市场上说的多核 CPU,便是多核处理器,核 越多,并行处理的程序越多,能大大的提高电脑运行的效率。

什么是进程与线程

进程:数值一个内存中的应用程序,每个进程都有一个独立的存储空间,一个应用程序可以同时运行多个进程,进程是程序的一次执行过程,是系统运行的基本单位,系统运行一个程序是一个进程从创建运行到消亡的过程

打开任务管理器就可以看到计算机上运行的进程

线程:线程是进程的一个执行单元,负责当前进程中程序的执行,一个进程可以有多个线程多个线程的程序被称为多线程程序

这些就是一个个进程

线程调度

分时调度

所有线程轮流使用cpu的使用权,平均分配每个线程占用cpu的时间

抢占式调度

抢先让优先级高的线程使用cpu,如果线程优先级相同,那么会随机选择一个执行,java使用抢占式调度

设置线程的优先级

抢占式调度的好处

大部分操作系统都支持多进程并发运行,现在的操作系统都支持同时运行多个程序比如我们可以在打lol的时候同时听歌

实际上cpu使用抢占式调度模式在多个线程之间进行高速的切换,对于cpu的一个核而言,某个时刻只能执行一个线程,而cpu在多个线程之间切换速度很快看上去像在同一时刻运行,多线程不能提高程序的运行速度,但是可以提高程序的运行效率,让cpu的使用效率更高

这是学习java多线程前需要了解的一些基础知识,我下一篇文章会来简述java多线程的使用

如有错误还请各位批评指正

最新文章

  1. Yii2安装搭建和将入口文件移到根目录
  2. xpcall 安全调用
  3. PHP发送请求头和接收打印请求头
  4. 利用URLScan工具过滤URL中的特殊字符(仅针对IIS6)-- 解决IIS短文件名漏洞
  5. js利用数组length属性清空和截短数组
  6. 开心菜鸟系列----变量的解读(javascript入门篇)
  7. 详细说明C++笔试题,调查超载、盖、多态
  8. [Machine Learning]学习笔记-线性回归
  9. Linux基础知识第六讲,远程管理ssh操作
  10. 设计模式学习--Abstarct Factory
  11. RWCString 定义 memeroy leak
  12. C# string 转 bool
  13. ECshop语言包lang的加载原理
  14. jQuery插件扩展方法
  15. 一个很easy的脚本--php获取服务器端的相关信息
  16. shell脚本学习(2)比较两个数字大小
  17. SVN中trunk,branches,tags用法详解(转载)
  18. Unity技术支持团队性能优化经验分享
  19. Scanner遇上UnmappableCharacterException
  20. Git with SVN

热门文章

  1. python_lesson2 多进程探索 (multiprocessing包)
  2. view中显示部分区域
  3. Redis系列(五):数据结构List双向链表中基本操作操作命令和源码解析
  4. Beta 冲刺
  5. 微信小程序for循环遍历
  6. 在ASP.NET 中有哪些数据验证控件(请解释ASP.NET中以什么方式进行数据验证)?
  7. vipkid 面试经历
  8. 《Java并发编程之美》
  9. DOM-BOM-EVENT(2)
  10. 一.django初识