Android开发-线程

90 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情

前言

其实说到线程,不能说只有安卓有,应该是所有的开发语言都需要了解线程开发,因为在开发过程中我们需要时时刻刻的关注着我们的代码,程序运行在什么样的线程上,会不会造成卡顿,会不会影响性能,会不会导致程序不能正常运行等等,它影响着一个应用程序的所有关联操作。

线程是什么

线程是什么?线程的定义:操作系统能够进行运算调度的最小单位,是进程中实际运行的单位,简单的说就是它是一条或者多条高速公路,我们的所有程序运行都需要在进程中的线程上运行,如果没有路,那么怎么知道放向,怎么知道我们程序运行到哪里了,怎么控制,怎么处理问题。

Android 中的线程

那么对应到安卓开发,安卓中的线程是怎么样的呢,首先得从我们系统启动开始说,从程序启动开始,安卓就会启动一个linux进程和一个主线程,这就相当于我们的老大,所有程序的组件都在这个进程和主线程中运行,但是也不能有太多的进程或者说是程序在运行,因为我们的系统的内存是固定的,如果超过了系统的运行大小,那么安卓会停止一些不经常使用的或者说优先级比较低的进程,释放足够的资源给其他正在运行的程序,保证我们正在使用的进程是顺畅的,所以在安卓系统中是有进程的优先级的。

介绍了进程,那么线程就是这些进程中运行的一个个单位,他们就是帮助进程内部和进程间通信的信使。

安卓中的线程使用,可以分为以下几类:
Thread :最直接的使用,new一个线程的对象,通过调用start方法就可以开启一个线程了;
实现Runable:通过实现实现runnable接口也可以使用线程;
Handler:大家最熟悉的通信工具,通过Handler实现也可以使用线程,实现异步消息的处理;

还有其他和其他组件组合使用的,像AsyncTaskHandlerThreadIntentService,这些内部也都是有线程的实现,开启的单独线程进行使用;

更高级的使用就是我们对线程的管理工具了,线程池:ThreadPool

实现线程的方法有很多,但是我们线程有的单线程和多线程,我们一般都会说多线程开发,单线程的情况下一般很少有,因为我们不会只有一条路,那样会造成堵塞,交通事故。。。