有如下**:
public class traditionalthreadsynchronized
public void init() catch (interruptedexception e)
outputer.out("bbbbbbbbb");}}
}).start();
new thread(new runnable() catch (interruptedexception e)
outputer.out("aaa");}}
}).start();
} class outputer
system.out.println();
} public void out1(string name)
system.out.println();
}} }
}
當然,其中的out與out1方法都是可以互斥的,
然而如下**中
public class traditionalthreadsynchronized
public void init() catch (interruptedexception e)
outputer.out("bbbbbbbbb");}}
}).start();
new thread(new runnable() catch (interruptedexception e)
outputer.out3("aaa");}}
}).start();
} static class outputer
system.out.println();
} public void out1(string name)
system.out.println();
}} public synchronized static void out3(string name)
system.out.println();
} }}
自然,當執行的時候,out與out3兩個方法是不能互斥的,而當執行緒1執行out1、執行緒2執行out3的時候,那麼執行緒將會可以互斥,
那麼怎麼使out與out3兩個方法也可以互斥呢,並不適用out1的方式?
求高人指點
java執行緒的互斥
多執行緒程式中的各個執行緒都是自由執行的,所以它們有時就會同時操作同乙個例項。這在某些情況下會引發問題。例如,從銀行賬戶取款時,餘額確認部分的 應該是像下面這樣的。if 可用餘額大於取款金額 private void init catch interruptedexception e outpure...
java網路程式設計 執行緒的互斥
執行緒互斥是指某一資源同時只允許乙個訪問者 程式呼叫 對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。引例 package cn.sundroid.thread public class testsynchronized private void init c...
java多執行緒 二 執行緒的互斥
多執行緒相對於單執行緒而言,大大的提高了硬體cpu的使用率,提高了處理的速度。任何事物帶來的都是兩面性的,多執行緒為我們帶來效能提高的同時也帶來了許多的安全性問題。說互斥之前,先說一下什麼是互斥,舉個列子,一天去atm機取錢,如果沒有互斥的話,你正取著錢突然有個人衝進來把你的錢搶走了。這時候你想,要...