第11章多线程本章学习目标理解多线程的概念掌握如何创建线程掌握如何使线程同步理解线程优先级、状态和线程调度本节主要内容多线程 概念使用Thread类创建线程使用Runnable接口创建线程多任务线程与进程的区别通常,我们把操作系统的多个任务 称为进程(Process),而程序中的多任务则称为线程。每个进程都拥有一组完整的属于自己的变量,而线程则共享这些数据。线程的优势 在于创建和注销线程的开销比运行新的进程少得多,所以现在主流的操作系统都支持多线程。而且,和进程间的通信相比,线程间的通信要快得多, 也方便得多。创建线程第一种方法就是继承线程类java.lang.Thread。相关的方法:run():该方法用于线程的执行 。在线程启动后会调用该方法。你需要重载该方法,以便让线程做特定的工作。start():该方法使得线程启动run()方法。示例1 :单线程:NoThreads.java示例2:多线程:Threads.java练习1通过继承Thread类来编写一个线程 类,类名为SubThread。该线程能够在命令行显示线程的名称,然后随机休眠小于1秒的时间,最后显示线程结束信息:“finis hed”+线程名。编写Application,在其中创建SubThread类的三个对象t1、t2、t3,它们的名称分别为"Fir st"、"Second"、"Third",并启动这三个线程。TestClass1.java创建线程第二种方法: 使用Runnable接口实际上,Thread类本身也实现了Runnable接口。一个Runnable接口提供了一个publ icvoidrun()方法。下面我们来看一个用Runnable接口创建线程的实例。例子:Threads_Runnable.j ava练习2通过继承Thread类来编写一个线程类,类名为SubThread。该线程能够在命令行显示线程的名称,然后随机休 眠小于1秒的时间,最后显示线程结束信息:“finished”+线程名。编写Application,在其中创建SubThread 类的三个对象t1、t2、t3,它们的名称分别为"First"、"Second"、"Third",并启动这三个线程。TestC lass2.javaGUI程序中的线程不使用多线程示例:MyEditor1.java使用多线程示例:MyEditor2 .java练习完成如图所示的图形界面程序,要求文本框的初值为0,当按下“增加”按钮时,文本框中的数值不停地增加,每次增加1;当 按下“减少”按钮时,文本框中的数值不断减少,每次减少1。示例:Ex3.java线程组线程组是一个线程的集合,用于对一些相 似的线程进行管理。TestThreadGroup.java |
|