設(shè)置一個(gè)全局的整型變量 int i=0;
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了閻良免費(fèi)建站歡迎大家使用!
如果密碼錯(cuò)誤變量就加1
判斷變量是否大于等于三 if(i=3)
將帳號(hào)鎖定
用While和一個(gè)計(jì)數(shù)變量,以下是偽代碼
定義計(jì)數(shù)變量并歸零
定義狀態(tài)變量并歸零
while(計(jì)數(shù)變量3且狀態(tài)變量為真)
{
輸入密碼
if(密碼正確)
{
狀態(tài)變量設(shè)定為真
}
else
{
計(jì)數(shù)變量+1
密碼框清空
}
}
if(狀態(tài)變量不為真) /說明前面的循環(huán)結(jié)束是因?yàn)檩斿e(cuò)了三次
{
提示:請(qǐng)管理員解鎖
【密碼輸入過程與上方用while循環(huán)類似】
}
else
{
(剩余操作)
}
while是循環(huán)啊,應(yīng)該用if吧,讓用戶有三次輸入驗(yàn)證的機(jī)會(huì)string uid="XX";//用戶輸入的帳號(hào)string pwd="XX";//用戶輸入的密碼int num=1;//用戶輸入驗(yàn)證的次數(shù) if(num=3){ if(如果用戶輸入的帳號(hào)和密碼驗(yàn)證通過){ // 進(jìn)行相關(guān)操作 }else{ num++; return;// } }else{ //彈出消息,告知用戶因?yàn)檩斎脲e(cuò)誤超過3次,帳號(hào)被鎖定 }}
/*
java是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。我們要做的是用鑰匙開鎖。首先創(chuàng)建鎖類,定義鎖的屬性,也就是可以給鎖賦予密碼或者說給它一個(gè)鎖芯。鎖能干嘛,打開和鎖起。打開就要用鑰匙去匹配鎖孔,密碼鎖就要用你輸入的密碼去匹配鎖的密碼,密碼正確,鎖就打開,錯(cuò)誤就打不開。鎖的鎖起,不需要鑰匙就鎖起了。
/
public?class?Lock{
String??lock;???//定義鎖密碼????
void?onlock(){????
?System.out.println("鎖起來了");
}
void??unlock(String?keys){???//開鎖。插入鑰匙,看能不能開鎖。
if(keys?==?lock){
System.out.println("鎖能打開");
}else{
System.out.println("您的鑰匙不匹配");
}
}
}
/
*測(cè)試我們的鎖。
/
public?class?Test?{
public?static?void?main(String[]?args)?{
Lock?lock?=?new?Lock();
lock.lock="dxnwd333";
lock.onlock();
lock.unlock("abc");
lock.unlock("dxnwd333");
}
}
對(duì)象是一個(gè)鎖標(biāo)志。按照先到先得的原則,如果有多個(gè)線程都會(huì)執(zhí)行代碼,并使用同一個(gè)對(duì)象作為鎖,
synchronize(對(duì)象){ .... }
那么,先執(zhí)行這段代碼的那個(gè)線程,將會(huì)獲得這個(gè)對(duì)象鎖,而當(dāng)這個(gè)線程執(zhí)行這段代碼的時(shí)候,其他線程也是使用這個(gè)對(duì)象作為鎖的,就不能執(zhí)行這段代碼,知道最初得到這個(gè)鎖的線程運(yùn)行完這段代碼,然后再把鎖分配給下一個(gè)線程執(zhí)行。
public Object getObject(String key,Object o) {
synchronized (map) {
if(map.get(key)==null) {
map.put(key,o)
}else {
return map.get(key);
}}// 格式?jīng)]法弄,自己弄一下
}
// demol0326 的回答意思使用MyTest的實(shí)例來加鎖,但是map是static的,無法鎖住
// MyTest的多個(gè)實(shí)例在多個(gè)線程中的請(qǐng)求
//禾木雙子 :如果A線程在getObject方法的第二行停止,此時(shí)B線程進(jìn)入getObject后執(zhí)行部分代碼, 此時(shí)B線程停止,A線程啟動(dòng),他不會(huì)執(zhí)行'多線程處理', 仍然有線程線程安全問題,(想像一下更多的線程進(jìn)入該方法的情況,num甚至?xí)玫截?fù)值)