摘要: 对象的 wait(long timeout)、wait(long timeout, int nanos)、wait() 方法,组合对象的 notify()、notifyAll() 显示锁:Lock.newCondition()、Condition await 系列方法、Condition signa 阅读全文
posted @ 2019-12-18 09:28 ConstXiong 阅读(685) 评论(0) 推荐(0) 编辑
摘要: 每个 Java 对象都有一个内置锁 线程运行到非静态的 synchronized 同步方法上时,自动获得实例对象的锁 持有对象锁的线程才能运行 synchronized 同步方法或代码块时 一个对象只有一个锁 一个线程获得该锁,其他线程就无法获得锁,直到第一个线程释放锁。任何其他线程都不能进入该对象 阅读全文
posted @ 2019-12-18 09:25 ConstXiong 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 启动一个线程需要调用 Thread 对象的 start() 方法 调用线程的 start() 方法后,线程处于可运行状态,此时它可以由 JVM 调度并执行,这并不意味着线程就会立即运行 run() 方法是线程运行时由 JVM 回调的方法,无需手动写代码调用 直接调用线程的 run() 方法,相当于在 阅读全文
posted @ 2019-12-18 09:24 ConstXiong 阅读(2222) 评论(0) 推荐(0) 编辑
摘要: 加锁对象的 wait() 方法,使一个线程处于等待状态,并且释放所持有的对象的锁 加锁对象的 notify() 方法,由 JVM 唤醒一个处于等待状态的线程,具体哪个线程不确定,且与优先级无关 加锁对象的 notityAll() 方法,唤醒所有处入等待状态的线程,让它们重新竞争对象的锁 线程的 sl 阅读全文
posted @ 2019-12-18 09:21 ConstXiong 阅读(438) 评论(0) 推荐(0) 编辑
摘要: sleep() 方法给其他线程运行机会时不考虑线程的优先级;yield() 方法只会给相同优先级或更高优先级的线程运行的机会 线程执行 sleep() 方法后进入阻塞状态;线程执行 yield() 方法转入就绪状态,可能马上又得得到执行 sleep() 方法声明抛出 InterruptedExcep 阅读全文
posted @ 2019-12-18 09:20 ConstXiong 阅读(1469) 评论(0) 推荐(1) 编辑