写点什么

android 热更新图片,动脑学院视频百度云

用户头像
极客开源
关注
发布于: 刚刚

在很多的博客或者书上,说有三种,除了上述的两种以外,还有一种是实现 Callable 接口。但是这种并不是,因为,我们检查 JDK 中 Thread 的源码,看它的注释:


There are two ways to create a new thread of execution. One is to declare a class to be a subclass of Thread. This subclass should override the run method of class Thread. An instance of the subclass can then be allocated and started.


这里面明确指出,只有两种方式创建一个新线程执行,而且 Thread 类的构造方法里,也没有接受参数类型为 Callable 的方法。所以新启线程的方式只有上述两种。

Thread 和 Runnable 的区别

我们知道 Java 是面向对象的语言,对于线程来说,这是操作系统层面的概念,那么对于线程来说,Thread 和 Runnable 谁才是线程呢?


要注意,Thread 才是 Java 里对线程的唯一抽象,Runnable 只是对任务(业务逻辑)的抽象。Thread 可以接受任意一个 Runnable 的实例并执行。用一个生活中的例子来说明,一个开发部门中有很多的开发人员,每个开发人员都可以开发程序,这样,每个开发人员就是一个个的 Thread,而开发人员接收到的开发任务就是一个个的 Runnable,开发人员是做实际开发工作的,不同的开发人员完全可以接受同一个开发任务。

深入理解 run()和 start()

同时,我们通过 new Thread()其实只是 new 出一个 Thread 的实例,还没有操作系统中真正的线程挂起钩来。只有执行了 start()方法后,才实现了真正意义上的启动线程。


start()方法让一个线程进入就绪队列等待分配 CPU,分到 CPU 后才调用实现的 run()方法,start()方法不能重复调用,如果重复调用会抛出 IllegalThreadStateException 异常。


而 run 方法是业务逻辑实现的地方,本质上和任意一个类的任意一个成员方法并没有任何区别,可以重复执行,也可以被单独调用。

线程的状态

Java 中线程的状态也不是简单的只有运行和死亡,共分为 6 种:


  1. 初始(NEW):新创建了一个线程对象,但还没有调用 start()方法。

  2. 运行(RUNNABLE):Java 线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。


线程对象创建后,其他线程(比如 main 线程)调用了该对象的 start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取 CPU 的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得 CPU 时间片后变为运行中状态(running)。


  1. 阻塞(BLOCKED):表示线程阻塞于锁。

  2. 等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。

  3. 超时等待(TIMED_WAITING):该状态不同于 WAITING,它可以在指定的时间后自行返回。

  4. 终止(TERMINATED):表示该线程已经执行完毕。


理解了线程的状态才能更好的让我们在并发编程调试程序时,知道线程的工作情况,进而有针对性的检查我们的代码的运行情况,进一步优化我们的代码。

尾声

你不踏出去一步,永远不知道自己潜力有多大,千万别被这个社会套在我们身上的枷锁给捆住了,30 岁我不怕,35 岁我一样不怕,去做自己想做的事,为自己拼一把吧!不试试怎么知道你不行呢?


改变人生,没有什么捷径可言,这条路需要自己亲自去走一走,只有深入思考,不断反思总结,保持学习的热情,一步一步构建自己完整的知识体系,才是最终的制胜之道,也是程序员应该承担的使命。


附上:我们之前因为秋招收集的二十套一二线互联网公司 Android 面试真题(含 BAT、小米、华为、美团、滴滴)和我自己整理 Android 复习笔记(包含 Android 基础知识点、Android 扩展知识点、Android 源码解析、设计模式汇总、Gradle 知识点、常见算法题汇总。)



本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

极客开源

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
android热更新图片,动脑学院视频百度云