技术开发 频道

Android开发中的多线程编程技术

  【IT168技术】多线程这个令人生畏的“洪水猛兽”,很多人谈起多线程都心存畏惧。在Android开发过程中,多线程真的很难吗?多线程程序的“麻烦”源于它很抽象、与单线程程序运行模式不同,但只要掌握了它们的区别,编写多线程程序就会很容易了。下面让我们集中精力开始学习吧!

  多线程案例——计时器

  我在给我的学生讲多线程的时候都会举一个计时器的案例,因为计时器案例是多线程的经典应用。

  这个案例中,屏幕启动之后,进入如图8-1所示的界面。

  屏幕上有一个文本框用于显示逝去的时间,此外还有一个“停止计时”按钮。案例的用例图如图8-2所示。

  ▲图8-1 计时器界面

  ▲图8-2 计时器用例图

  能够在屏幕上“实时地显示”时间的流逝,单线程程序是无法实现的,必须要多线程程序才可以实现,即便有些计算机语言可以通过封装好的类实现这一功能,但从本质上讲这些封装好的类就是封装了一个线程。

  综上所述,完成本案例用到的知识及技术如下:

  1)进程和线程的概念;

  2)Java中的线程,在Java中创建线程的方式;

  3)Android中的线程,包括:Message、Handler、Looper和HandlerThread等概念。

  线程究竟是什么?在Windows操作系统出现之前,个人计算机上的操作系统都是单任务系统,只有在大型计算机上才具有多任务和分时设计。Windows、Linux操作系统的出现,把原本只在大型计算机才具有的优点,带到了个人计算机系统中。

  进程概念

  一般可以在同一时间内执行多个程序的操作系统都有进程的概念。一个进程就是一个执行中的程序,而每一个进程都有自己独立的一块内存空间、一组系统资源。在进程的概念中,每一个进程的内部数据和状态都是完全独立的。在Windows操作系统下我们可以通过〈Ctrl+Alt+Del〉组合键查看进程,在UNIX和Linux操作系统下是通过PS命令查看进程的。打开Windows当前运行的进程,如图8-3所示。

Android开发中的多线程编程技术

  ▲图8-3 Windows操作系统进程

  在Windows操作系统中一个进程就是一个exe或dll程序,它们相互独立,互相也可以通信,在Android操作系统中进程间的通信应用也是很多的。

  线程概念

  多线程指的是在单个程序中可以同时运行多个不同的线程,执行不同的任务。多线程意味着一个程序的多行语句可以看上去几乎在同一时间内同时运行。

  线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制。但与进程不同的是,同类的多个线程共享一块内存空间和一组系统资源,所以系统在各个线程之间切换时,资源占用要比进程小得多,正因如此,线程也被称为轻量级进程。一个进程中可以包含多个线程。图8-4所示是计时器程序进程和线程之间的关系,主线程负责管理子线程,即子线程的启动、挂起、停止等操作。

Android开发中的多线程编程技术

  ▲图8-4 进程和线程关系

1
相关文章