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) 将此线程标记为守护线程或用户线程