java多线程

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 }

 

posted @ 2018-03-05 11:34  little——boy  阅读(179)  评论(0编辑  收藏  举报