复习 多线程
复习一下多线程。
创建线程的第一种方法: 继承 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()本身没有抛异常。