Java多线程的实现方式:1 继承Thread类;2 实现Runnable接口
1 Thread类API介绍
1 | // 创建 |
2 | Thread thread = New Thread(); |
3 | Thread thread = New Thread(String name); |
4 | Thread thread = New Thread(Runnable target); |
5 | Thread thread = New Thread(Runnable target, String name); |
6 | |
7 | // 动态方法 |
8 | thread.isAlive();// 测试线程是否处于活动状态 |
9 | thread.start();// 开始执行线程,JVM 调用该线程的 run 方法 |
10 | thread.setName(String name);// 改变线程名称 |
11 | thread.getName();// 获取线程名称 |
12 | thread.setPriority(int priority);// 更改线程的优先级 |
13 | /* 具有较高优先级的线程应该在低优先级的线程之前分配处理器时间,然而,线程优先级不能保证线程执行的顺序,而且非常依赖于平台 |
14 | Thread.MIN_PRIORITY 1 |
15 | Thread.NORM_PRIORITY 5(默认) |
16 | Thread.MAX_PRIORITY 10 */ |
17 | thread.getPriority();// 获取线程的优先级 |
18 | thread.setDaemon(boolean on);// 将该线程标记为守护线程。守护线程是服务提供者线程,当 JVM 检测到应用程序中的所有线程都只是守护线程时,它将退出应用程序 |
19 | thread.isDaemon();// 测试是否为守护线程 |
20 | thread.join(long millisec);// 等待该线程终止的时间。假设有两个线程 t1 和 t2,如果线程 t1 调用 t2.join(),线程 t1 开始等待,直到线程 t2 终止,t1 才会继续执行 |
21 | thread.interrupt();// 尝试中断线程 |
22 | |
23 | // 静态方法 |
24 | Thread.currentThread();// 返回对当前正在执行的线程对象的引用 |
25 | Thread.yield();// 尝试暂停当前正在执行的线程对象,并执行其他线程。该线程放弃当前对处理器的使用 |
26 | Thread.sleep(long millisec);// 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。如果线程在进入休眠之前拥有锁的所有权,则它在休眠期间继续保持这些锁 |
27 | Thread.interrupted();// 测试线程是否中断 |
28 | Thread.holdsLock(Object o);// 返回 boolean 类型,当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true |
29 | Thread.dumpStack();// 将当前线程的堆栈跟踪打印至标准错误流 |