关于多线程你不知道的事

引言:

  世间万物都可以同时完成很多工作,例如,人体可以同时进行呼吸,呼吸的同时你也可以同时排放有毒气体,你甚至可以去思考如何上厕所才能不崩出水花,

获得10分的好成绩。你的电脑可以同时听歌、玩联盟,或者刷网课。这种思想放在Java中称之为“并发”,我们将并发完成的每一件事情称之为线程。

 (15204493106)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

进入正题!

  在Java语言中,并发机制十分的重要,个人觉得淘宝的秒杀系统就是一个非常牛皮的案例,感兴趣的小伙伴可以去看一下我的这个博客。

https://www.cnblogs.com/James-Harden/p/12723907.html。里面有对于高并发十分详细的简介。

  •   以及有的时候面试官可能会问你,假如一个线程池的线程忽然异常了这个线程池会怎样处理这个线程?
  •        了解JDK的 Executors 线程池吗?
  •        阿里巴巴的开发手册上为啥不允许线程池的默认实现?

这些问题小伙伴可以看看这篇文章来做更深度的剖析!

文档:有的线程它死了,于是它变成一道面试题...

  链接:http://note.youdao.com/noteshare?id=a9d56ebb337fa5d40f1716b0ee2dcbd8&sub=BF364D61BCD046BF976F49CFFECD4DC4

  多线程的机制十分的复杂,举个恰当的例子,比如你同时阅读三本书,首先阅读第一本书的第一张,然后阅读第二本书的第一张,再阅读第三本书的第一张。回过

头来你在阅读第一本书的第二张。。。。。。以此类推,就体现出了多线程的复杂性。

线程在操作系统中是如何工作的呢?

  Java多线程在不同的操作系统中也存在着差异,例如我的电脑使win10系统,windows系统是多任务操作系统,它是以进程为单位。一个进程是一个包含自身地址的程序

,每个独立执行的程序都称之为进程也就是正在执行的程序。系统可以分配给每一个进程一段有限的使用CPU时间(专业点叫做:CPU时间片),CPU在这段时间中执行某

个进程,然后又在下一个时间片跳到另一个进程中去执行。由于CPU转换的较快,所以给了我们一个进程是同时进行的假象!!!

下面,我用一个图更直观的表明Windows系统的执行模式:

 一个线程就是进程中的执行流程,一个进程中可以包含多个线程。每一个线程也可以得到一小段的执行时间。这样一个进程就可以具有多个并发执行的线程啦!!

实现线程的两种方式?

  Java主要提供了两种方式实现线程

  • 继承java.lang.Thread类
  • 实现 java.lang.Runnable接口

线程的生命周期?

  线程的生命周期有七种状态:

  • 出生状态
  • 就绪状态
  • 运行状态
  • 等待状态
  • 休眠状态
  • 阻塞状态
  • 死亡状态

我用一个图更直观的将他表述出来:

 好啦今天就到这里啦!!!!

给大家看看我家的芝麻和黄妞!!!!

可爱吗???

原文地址:https://www.cnblogs.com/James-Harden/p/12792399.html