安卓应用开发类图!整理几个重要的Android知识,已拿到offer

本文深入探讨Android应用开发中的线程管理,包括Thread和Runnable的区别、run()与start()的使用、线程的六种状态以及并发编程中的重要概念。了解这些知识能帮助开发者提升Android应用的性能和质量。
摘要由CSDN通过智能技术生成

image
优秀的战士需要出色的剑才能战斗。同样,在现代IT中,每个编码人员都需要最好的Android开发人员工具来提高他们的技能和效率。在Android应用程序开发这个残酷的竞争行业中,只有优秀的开发人员才能生存下去。您需要向客户展示您拥有最佳技术和资源。

它不仅仅是展示您的设备以吸引客户,还要确保您的Android应用程序在高效的时间线内以最高质量构建。那么哪些是最好的Android开发者工具?嗯,那里有很多工具,但并非所有工具都足够好。在不浪费任何时间的情况下,让我们来看看最好的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):表示该线程已经执行完毕。

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

学习分享

在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

2021最新上万页的大厂面试真题

七大模块学习资料:如NDK模块开发、Android框架体系架构…

只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。

这份体系学习笔记,适应人群:
**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。
**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。
第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。如有需要获取完整的资料文档的朋友点击我的GitHub免费获取。

%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)免费获取。**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值