这不就是多线程ThreadPoolExecutor和阻塞队列吗

无处不在的线程,多线程,阻塞队列,并发

编程世界无新鲜事,看你翻墙翻得厉不厉害
 

场景:现在的软件开发迭代速度(一周一更新,甚至一天一发布)真是太快了,今天进行软件更新的时候,看到了有趣的现象,这不就是线程池,ThreadPoolExecutor,阻塞队列,任务(下载和安装)最好的案例嘛!经常看到很多博文在写多线程,并发,队列,却举不出现实生活的场景例子,都在背书吗(天下文章一大抄,看你会抄不会抄)。

现象图示:

这不就是多线程ThreadPoolExecutor和阻塞队列吗

这不就是多线程ThreadPoolExecutor和阻塞队列吗

我开启了全部更新38个要更新的app,可最多时看到了3个在同时下载,剩下的下载任务在排队(队列),安装过程中,明明已经下载了多个app,可同一时刻只有一个在安装,其他下载好的app也在排队

 

0.  线程thread

    说起线程,不得不提起进程,

     线程,还真不好下定义,你要问十个人就会有十种答案,我就当线程就是一个可以执行的任务程序(比如上面图片里的下载和安装)。java里线程主要通过继承java.lang.Thread类或实现java.lang.Runnable接口,其实Thread也是实现了Runnable接口的类,所有,线程还是围绕着java.lang.Thread类扩展包装,比如下面要要说的线程池。核心类如下

一个线程创建之后,总是处于其生命周期的4个状态之一中。线程的状态表明此线 程当前正在进行的活动,而线程的状态是可以通过程序来进行控制的,就是说,可以对线程进行操作来改变状态。这些操作包括启动(start)、终止(stop)、睡眠(sleep)、挂起 (suspend)、恢复(resume)、等待(wait)和通知(notify)。每一个操作都对应了一个方法,这些方法是由java.lang提供的。

线程状态在Java中是通过一个Thread的内部枚举State标识的。

来源:董广明

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月13日
下一篇 2020年3月13日

相关推荐