复习 多线程

复习一下多线程。

创建线程的第一种方法: 继承 Thread

A.java

package com.allen;

public class A extends Thread{ //注意,这里继承了 Thread
    public void run()
    {
        while (true)
        {
            System.out.println("aaaa");
        }
    }

}

调用 A.java 的 TestThread_1.java

package com.allen;

public class TestThread_1 {
    public static void main(String[] args)
    {
        A a = new A();
//        a.run();//Single thread
        a.start();//Multiple threads
// a.start(); //如果 uncomment 该句,将导致 exception 错误。因为一个 Thread() 对象 只能调用一次 start() 方法。
while(true) { System.out.println("bbb"); } } }

注意,在上面中,如果用的是 a.run() 那么就是单线程, 如果用的是 a.start() 那么就是用的多线程

注意,一个 Thread() 对象 只能调用一次 start() 方法。

Thread() 常用方法

 setName(): 设置线程名字

currentThread() :获取当前线程的引用

currentThread().getName(): 获取当前线程的名字。

setPriority(): 设置线程的优先级。默认是5。数字越大越先执行。 举例:

     A aa = new A(); Thread t1 = new Thread(aa); t1.setPriority(Thread.NORM_PRIORITY+3);

 

创建线程的第2种方法:实现 Runnable 接口 (implements Runnable)

A.java

package com.allen;

public class A implements Runnable
{
    public void run() {
        while (true)
        {
            System.out.println("aaaa");
        }
    }
    
}

调用 A.java 的 TestThread_1.java

package com.allen;

public class TestThread_1 {
    public static void main(String[] args)
    {
        A a = new A();
        Thread t = new Thread(a); //这里创建了一个Thread 对象
        t.start(); //调用 t 的 start() 方法
        while(true)
        {
            System.out.println("bbb");
        }
    }
}

OK。

注意: 无论是继承 Thread() 类的 run() 方法,还是实现 Runnable() 类的 run() 方法都不能抛异常。因为 Thread()本身没有抛异常。

posted @ 2012-12-01 16:57  allenbackpacker  阅读(156)  评论(0编辑  收藏  举报