synchronized 塊
方法一.
private class Worker implements Runnable {
private Object mLock = new Object();
private int spantime = 100;
private boolean bResult = false;
public Worker(int spantime) {
Log.v(TAG, " TestThread constructor");
this.spantime = spantime;
new Thread(this).start();
}
@Override
public void run() {
Log.v(TAG, " TestThread run");
synchronized (mLock) {
try {
Thread.sleep(spantime);
bResult = true;
Log.v(TAG, "current thread = " + Thread.currentThread().getName() + " worker thread .... count = " + count++);
} catch (InterruptedException e) {
e.printStackTrace();
}
mLock.notifyAll();
}
}
boolean getResult() {
synchronized (mLock) {
try {
mLock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return bResult;
}
}
方法二
public void onClick(View v) {
AThread thr = new AThread();
thr.start();
synchronized(thr){
try {
//Thread.sleep(1000);
thr.wait();
Log.v(TAG, " sleep 1000 --> 2");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
synchronized(thr){
thr.mReady = true;
Log.v(TAG, " set mReady = true ---> 3");
thr.notifyAll();
}
}
class AThread extends Thread{
public boolean mReady = false;
public AThread(){
super("Athread");
}
public void run(){
Looper.prepare();
synchronized (this){
try {
Thread.sleep(1000);
Log.v(TAG, " Thread notifyall -->1");
this.notifyAll();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
synchronized(this){
while (!mReady){
try {
wait();
Log.v(TAG, " Thread wait ----> 4");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Looper.loop();
}
}
相關文章
- 146.synchronized同步方法與塊synchronized
- synchronized 程式碼塊怎麼用synchronized
- synchronized鎖機制 之 程式碼塊鎖synchronized
- synchronizedsynchronized
- synchronized 原理synchronized
- Synchronized bnsynchronized
- synchronized探究synchronized
- synchronized原理synchronized
- synchronized獵奇synchronized
- synchronized學習synchronized
- Synchronized詳解synchronized
- Synchronized 精講synchronized
- Synchronized同步鎖synchronized
- 一張圖講解物件鎖和關鍵字synchronized修飾方法(程式碼塊)物件synchronized
- synchronized的使用(一)synchronized
- synchronized實現原理synchronized
- synchronized 鎖的原理synchronized
- Synchronized 實現原理synchronized
- Synchronized的那些事synchronized
- java中的synchronizedJavasynchronized
- synchronized 關鍵字synchronized
- 徹底理解synchronizedsynchronized
- synchronized底層原理synchronized
- 深入學習synchronizedsynchronized
- 併發程式設計之synchronized(二)------jvm對synchronized的優化程式設計synchronizedJVM優化
- transient和synchronized的使用synchronized
- 四、Synchronized與Lock原理synchronized
- java Synchronized的優化Javasynchronized優化
- SpringMvc的Controller singleton synchronizedSpringMVCControllersynchronized
- 使用 Synchronized 關鍵字synchronized
- 構建一個 @synchronizedsynchronized
- Java基礎-Synchronized原理Javasynchronized
- java併發之synchronizedJavasynchronized
- synchronized鎖重入問題synchronized
- 從此不怕Synchronized鎖synchronized
- synchronized 的實現原理synchronized
- 深入瞭解Synchronized原理synchronized
- synchronized升級過程synchronized
- Java synchronized那點事Javasynchronized