WEB开发网
开发学院WEB开发Jsp Java入门笔记6_线程 阅读

Java入门笔记6_线程

 2008-01-05 19:10:42 来源:WEB开发网   
核心提示:1. 多线程1.1 创建线程类在java中可以简单的从Thread类中继续创建自己的线程类:public class MyFirstThread extends Thread { public void run() { . . .}}说明:(1) Thread类位是java.lang包中,所以可以不用显示imp

  1. 多线程
1.1 创建线程类
在java中可以简单的从Thread类中继续创建自己的线程类:

public class MyFirstThread extends Thread {

public void run() { . . .}

}

说明:

(1) Thread类位是java.lang包中,所以可以不用显示import;

(2) 从Thread类中继续下来的类最好重载run()方法,以运行需要的代码;

可以按以下方法实例化并运行线程:

MyFirstThread aMFT = new MyFirstThread();

aMFT.start();

说明:

(3) 实例化线程类后,系统会初始化一些参数,主要是为线程创建名称,把新的线程加入指定的线程组,初始化线程运行需要的内存空间,指定新线程的优先级别,指定它的守候线程;

(4) start方法是Thread类中的方法,它会调用run方法,在新的线程中运行指定的代码;

(5) 除了start方法外,从Thread继续下来的类还具有其它一些主要的方法:stop,suspend,resume等;

以下是一个完整的Thread派生类:

1: public class ComplexThread extends Thread {

2: PRivate int delay;

3:

4: ComplexThread(String name, float seconds) {

5: super(name);

6: delay = (int) seconds * 1000; // delays are in milliseconds

7: start(); // start up ourself!

8: }

9:

10: public void run() {

11: while (true) {

12: System.out.println(Thread.currentThread().getName());

13: try {

14: Thread.sleep(delay);

15: } catch (InterruptedException e) {

16: return;

17: }

18: }

19: }

20:

21: public static void main(String argv[]) {

22: new ComplexThread("one potato", 1.1F);

23: new ComplexThread("two potato", 1.3F);

24: new ComplexThread("three potato", 0.5F);

25: new ComplexThread("four", 0.7F);

26: }

27: }

1.2 Runable接口
创建多线程运行指定代码的另一种方法是,在创建类时implement Runable这个接口:

public class MySecondThread extends ImportantClass implements Runnable {

public void run() {. . .}

}

说明:

(1) 该类implement Runable接口,就表明有意图运行在单独的线程中,Thread也是implement Runable接口的;

(2) Implement Runalbe接口至少需要实现run方法;

以下是创建新线程运行该类的实例:

MySecondThread aMST = new MySecondThread();

Thread aThread = new Thread(aMST);

aThread.start();

说明:

(3) Thread类有多个构造函数Thread()、Thread(Runable target)等,本例中用的就是第二个构造函数,它有一个Runable类型的函数,所以要在多线程中运行的实例的类必须是implement Runable的;

(4) AThead.start()方法调用Thread实例的中的target.run方法,本例中就是MySecondThread实例中的run方法;

(5) Thread构造函数还可以指定线程名,运行所需的stack,线程所属的组等;

Tags:Java 入门 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接