深入多线程系列一:理解多线程在于深深地理解了多任务、进程、多线程、线程

在计算机的世界中,你得看到更加广阔的视野,除了你可能了解的多线程,其实还有着多任务、进程、线程这些概念。

深入多线程系列

深入多线程一:理解多线程在于深深地理解了多任务、进程、多线程、线程
深入多线程二:手撕多线程,从会三种创建多线程方式开始:除了常见的两种,你是否了解Callable接口方式?
深入多线程三:初遇并发问题:从一个小故事开始,从一行行代码开始
深入多线程四:停止多线程,你不会还以为是用stop和destroy吧?
深入多线程五:多线程为何要使用休眠?
深入多线程六:线程礼让与强制执行
深入多线程七:纯手绘图解多线程状态+代码示例,就问你怕了吗?
深入多线程八:多线程的优先级
深入多线程九:守护线程
深入多线程十:通过案例体会多线程的不安全
深入多线程十一: 超全synchronized的两种用法:同步方法与同步块
深入多线程十二:什么是死锁?
深入多线程十三:什么是Lock锁,比起synchronized锁有什么区别?
深入多线程十四:经典生产者与消费者问题,本质是线程通信问题
深入多线程十五:管程方式解决生产者与消费者问题
深入多线程十六:信号灯方式解决生产者与消费者问题
深入多线程十七:什么是池?线程池方式解决生产者与消费者问题

多任务

什么是多任务?,从字面意思理解就简单多了, 字很好理解,不单一个,有两个或两个以上;而 任务 呢?这个也不难,每个进程都可以称作一个任务。

多任务是指用户在同一时间内运行多个进程。

举个生活中的小栗子

当你在上你最喜爱的编程课的时候,你的好兄弟 一颗剽悍的种子 叫你吃鸡,你想啊,难得好兄弟叫你一起开黑,当然是赶紧上号;所以你一边和好兄弟一起打游戏,一边还要看看眼前的老师在敲代码(其实是看老师有没有过来 ),两个任务同时进行。

这节课很快就过去了,快乐的时光总是走得很快很快,下课的你是乎有点恍惚,鸡是吃到了,但是课就有迷了,听得似懂非懂。

不管在以往的生活中,还是上面的比方,你是否会发现,看起来是在做多个任务,但是 本质上我们大脑同一时间依旧只做一件事情。

计算机也是同样如此…

你看计算机能同时运行多个任务,其实是一个错觉。

事实上CPU在某一时刻只会执行一件任务,因为CPU任务调度机制在任务之间的切换速度非常迅速。
在这里插入图片描述

进程

除了看上面的多任务,想必你在游荡计算机世界里也没少听说过进程这个概念。

在操作系统中一个任务就是一个进程,也就是说你运行的程序就是进程,你打开的微信、游戏、浏览器等等都是一个个的进程。

那进程就只能干一件事情吗,当然不止,正如现在在使用浏览器写文章的我,写文章是一个页面,打开新页面搜歌又是一个页面,一边听歌一边无休止的写。

CSDN中写文章里的功能只是写这个功能吗,它可以同时在我写的时候一边统计字数和行数,还有当前是几行几列。听歌只有声音吗,它还有歌词呢。

在一个进程中,需要同时运行多个"子任务",我们可以称进程内的这些"子任务"是线程。下面线程中会说到。

一个进程可以有多个线程,如视频中可以同时听到声音,看一帧帧图像,还可以跟着看弹幕和刷弹幕,等等…

进程有一定的生命期,所以是执行程序的一次执行过程,是一个动态概念。是系统资源分配的单位。

说起进程不得不提和进程很类似的 程序

可以简单的理解:程序其本身没有任何运行的含义,是一个静态的概念。

多线程

上面进程举的栗子中,进程每做一件事情,就需要有一个线程。那么一个进程要做一件事情,就需要至少有一个线程。如浏览器这种进程可以有多个线程,多个线程可以同时执行。

多线程执行方式和多进程可以说一样的,是由操作系统在多个线程之间快速切换,短暂交替运行,所以看起来像同时执行一样。

对比普通方法调用&多线程调用

普通方法调用

主线程跑下来调用run方法,run方法执行完,依然回到主线程。

主线程只有一条执行路径

在这里插入图片描述
多线程调用

分工协作各走各的,主线程走主线程的,子线程走子线程的,多线程调用多条路径执行,而不像普通调用只执行主线程一条。

多线程可以有多条执行路径,主线程与子线程并行交替执行。

在这里插入图片描述
但是在多线程当中,除了每个线程交替运行速度快,让你看起来如同同时执行一样的错觉;是出现在只有一个CPU的情况下。

多核CPU就不再是这种快速交替运行的错觉了,多核CPU是真正实现同时执行多线程。

线程

当看到这里,相信你对线程这个概念已经不再陌生了,多线程很简单指的是执行多条路径,那线程呢?

线程是独立的执行路径。

最后:

为了更好的阅读体验,我把想说的话都放在了下面,嘿嘿。

我是一颗剽悍的种子 把我会的,认真的分享 是我写博客一直不变的信条。
如果你能看到这篇博文,说明咱们还是很有缘的;希望能带给你一些许帮助,创作的不易,
把我文章的知识带走,你的三连留下,点赞,评论,关注,是我最大的动力。

谢谢你这么可爱,还关注我~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值