Object类:wait、notify、notifyAll依赖于锁对象
| 方法 | 说明 |
|---|---|
| wait | 当在线程中执行wait()方法后,会使当前线程释放持有的锁并且进入到等待状态,等待状态下的线程是不会和其它处于Blocking状态的线程在去竞争锁,直到等待时间到了或被其它线程唤醒,此线程会去竞争锁资源然后执行。 |
| notify | notify()会唤醒单个处于等待状态下的线程,如果要是有多个线程处理等待状态,那么只会随机唤醒一个,具体唤醒那个这个由jvm来决定 |
| notifyAll | 会唤醒所有处于等待状态下的线程 |
Thread 类 API:
| 方法 | 说明 |
|---|---|
| public void start() | 启动一个新线程;Java虚拟机调用此线程的run方法 |
| public void run() | 线程启动后调用该方法 |
| public void setName(String name) | 给当前线程取名字 |
| public void getName() | 获取当前线程的名字线程存在默认名称:子线程是Thread-索引,主线程是main |
| public static Thread currentThread() | 获取当前线程对象,代码在哪个线程中执行 |
| public static void sleep(long time) | 让当前线程休眠多少毫秒再继续执行Thread.sleep(0) : 让操作系统立刻重新进行一次cpu竞争 |
| public static native void yield() | 提示线程调度器让出当前线程对CPU的使用 |
| public final int getPriority() | 返回此线程的优先级 |
| public final void setPriority(int priority) | 更改此线程的优先级,常用1 5 10 |
| public void interrupt() | 中断这个线程,异常处理机制 |
| public static boolean interrupted() | 判断当前线程是否被打断,清除打断标记 |
| public boolean isInterrupted() | 判断当前线程是否被打断,不清除打断标记 |
| public final void join() | 等待这个线程结束 |
| public final void join(long millis) | 等待这个线程死亡millis毫秒,0意味着永远等待 |
| public final native boolean isAlive() | 线程是否存活(还没有运行完毕) |
| public final void setDaemon(boolean on) | 将此线程标记为守护线程或用户线程 |
