实例// 通过继承 Thread 创建线程 class NewThread extends Thread { NewThread() { // 创建第二个新线程 super("Demo Thread"); System.out.println("Child thread: " + this); start(); // 开始线程 } // 第二个线程入口 public void run() { try { for(int i = 5; i > 0; i--) { System.out.println("Child Thread: " + i); // 让线程休眠一会 Thread.sleep(50); } } catch (InterruptedException e) { System.out.println("Child interrupted."); } System.out.println("Exiting child thread."); } } public class ExtendThread { public static void main(String args[]) { new NewThread(); // 创建一个新线程 try { for(int i = 5; i > 0; i--) { System.out.println("Main Thread: " + i); Thread.sleep(100); } } catch (InterruptedException e) { System.out.println("Main thread interrupted."); } System.out.println("Main thread exiting."); } }
编译以上程序运行结果如下: Child thread: Thread[Demo Thread,5,main] Main Thread: 5 Child Thread: 5 Child Thread: 4 Main Thread: 4 Child Thread: 3 Child Thread: 2 Main Thread: 3 Child Thread: 1 Exiting child thread. Main Thread: 2 Main Thread: 1 Main thread exiting.
Thread 方法下表列出了Thread类的一些重要方法: 序号 | 方法描述 |
---|
1 | public void start() 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 | 2 | public void run() 如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 | 3 | public final void setName(String name) 改变线程名称,使之与参数 name 相同。 | 4 | public final void setPriority(int priority) 更改线程的优先级。 | 5 | public final void setDaemon(boolean on) 将该线程标记为守护线程或用户线程。 | 6 | public final void join(long millisec) 等待该线程终止的时间最长为 millis 毫秒。 | 7 | public void interrupt() 中断线程。 | 8 | public final boolean isAlive() 测试线程是否处于活动状态。 |
测试线程是否处于活动状态。 上述方法是被Thread对象调用的。下面的方法是Thread类的静态方法。 序号 | 方法描述 |
---|
1 | public static void yield() 暂停当前正在执行的线程对象,并执行其他线程。 | 2 | public static void sleep(long millisec) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。 | 3 | public static boolean holdsLock(Object x) 当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。 | 4 | public static Thread currentThread() 返回对当前正在执行的线程对象的引用。 | 5 | public static void dumpStack() 将当前线程的堆栈跟踪打印至标准错误流。 |
|