1、创建任务和线程
任务就是对象。为了创建任务,我们必须首先为任务定义一个类.人任务类必实现runnable接口。Runnable接口非常简单它就包含一个run方法。需要实现这个方法告诉县城将如何运行。
TaskClass task = new TaskClass();//定义一个TaskClass类,使用它的构造方法创建一个任务。
Thread thread = new Thread(task);//任务必须在线程中执行,使用此语句创建任务的线程
thread.start()//告诉java虚拟机该线程准备运行。000
1 public class TaskClass implements Runnable{
2
3 public TaskClass(){
4
5 }
6 //继承Runnable的run方法
7 public void run(){
8 //告诉系统如何运行线程
9 }
10
11 }
12
13 public class Client{
14
15 public void someMethod{
16
17 TaskClass task = new TaskClass();
18 //创建线程
19 Thread thread = new Thread(task);
20 //开始线程
21 thread.start();
22
23 }
24
25 }
2、Thread类
1)《interface》java.lang.Runnable
2)+Thread()//创建一个空线程
3)+Thread(task:Runnable)//为指定任务创建一个线程
4)+start():void //启动线程使方法run()被JVM调用
5)+isAlive():boolean //测试线程当前是否正在运行
6)+setPriority(p:int):void //设置线程的优先级(范围从1到10)
7)+join():void //等待线程结束
8)+sleep(millis: long):void // 是线程睡眠指定的数
9)+yield():void //使线程暂停并允许执行其他线程
10)+interrupt() :void //中断线程
3、GUI时间分发线程
GUI事件处理和绘图代码在一个被称为事件分发线程(event dispatch thread)的特殊线程执行。由于大多数的Swing方法都不是线程安全的,因此这是很有必要的。从多线程中调用他们可能会导致冲突。
在某些情况下需要在事件分发线程中运行代码,以避免可能的冲突。可以使用javax.swing.SwingUtilities类中的静态方法invokelater和invokeAndWait来运行事件分发线程的代码。必须将这些代码放到Runnable对象的run方法中,并且将Runnable对象指定为invokelater和invokeAndWait的参数。invokeLater方法立即返回,无需等待时间分发线程执行代码。invokeAndWait 在事件分发线程执行特定的代码前是不会返回的。
1 public static void main (String args[]){ 2 SwingUtilities.incokeLater(new Runnable(){ 3 public void run(){ 4 //the code for create a frame and setting its properties 5 } 6 }); 7 }