摘要:
相同: 都可以堵塞当前线程 不同: 1) 声明位置不同.sleep是Thread的静态方法;wait()是Object类的实例方法 2) 调用要求不同.sleep可以直接调用,wait()必须在synchronized代码块或方法中调用 3) 对同步监视器的控制不同: sleep不释放同步监视器,w 阅读全文
摘要:
wait() notify() notifyAll() 1 只能用于synchronized 同步代码块和同步方法中 2 这几个方法的调用者,必须是同一个同步监视器 package com.LearnJava.Thread; import java.util.concurrent.locks.Ree 阅读全文
摘要:
阅读全文
摘要:
需手动加锁和释放. package com.LearnJava.Thread; import java.util.concurrent.locks.ReentrantLock; /* 同步代码块 synchronized(同步监视器){ //需要同步的代码 } 同步监视器:俗称 锁,可以是任何实例化 阅读全文
摘要:
阅读全文
摘要:
同步方法,仍然后有线程锁. 1 对于非静态方法,线程锁(同步监视器)是this 2 对于静态方法,线程锁是该类. package com.LearnJava.Thread; /* 同步代码块 synchronized(同步监视器){ //需要同步的代码 } 同步监视器:俗称 锁,可以是任何实例化的类 阅读全文
摘要:
package com.LearnJava.Thread; /* 同步代码块 synchronized(同步监视器){ //需要同步的代码 } 同步监视器:俗称 锁,可以是任何实例化的类.但是需要共用同一个实例. */ class WindowSell implements Runnable{ Ob 阅读全文