你這個不是死鎖,就是flag的判斷有問題,每個線程都是自己把自己鎖住了,當(dāng)flag為true時,看以下兩段代碼:
創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報價,主機(jī)托管價格性價比高,為金融證券行業(yè)四川綿陽服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
public synchronized void set(String name) {
if (flag)
try {
wait();
public synchronized void out() {
if (flag)
try {
wait();
兩個線程都在wait,當(dāng)然卡住不動了。
看你的代碼,把set那段改成這樣應(yīng)該就好了:
public synchronized void set(String name) {
if (!flag)
try {
wait();
如果沒有差錯的話報錯應(yīng)該是i=4這句吧,如果沒有i操作鎖,如何對i對象進(jìn)行賦值等操作呢?當(dāng)然會報異常的
實現(xiàn)UI界面嗎?
用一個VECTOR保存密碼,程序下次運行不就又不可以了嗎?
package chen.util.algorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Vector;
public class Test2 {
public static void main(String[] args) throws IOException {
VectorString v = new VectorString(1);
v.add(0, "123"); // 設(shè)置出示密碼
// 利用控制臺來設(shè)置我們需要打印的值。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 程序要一直執(zhí)行。如果程序重新運行就會把密碼更改為123。建議你吧密碼保存到本地文件或者數(shù)據(jù)庫。
while(true){
String mima;
mima = br.readLine();
System.out.println("更改密碼請輸入321");
// 用戶更改密碼
if(mima.equals("321")){
String mima1 = br.readLine();
v.add(0, mima1);
}
// 密碼正確后執(zhí)行
if(mima.equals(v.get(0))){
System.out.println("正確");
}
// 初始密碼 123
if(mima.equals(v.get(0))){
System.out.println("用戶使用初始化密碼進(jìn)入系統(tǒng)");
}
}
}
}
分享標(biāo)題:java鎖的測試代碼 java中的鎖怎么實現(xiàn)
文章網(wǎng)址:http://chinadenli.net/article34/dodigpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、動態(tài)網(wǎng)站、企業(yè)建站、商城網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)