日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java 多线程 临界区_多线程编程的设计模式 临界区模式

發(fā)布時間:2024/9/27 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 多线程 临界区_多线程编程的设计模式 临界区模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

臨界區(qū)模式 Critical Section Pattern 是指在一個共享范圍中只讓一個線程執(zhí)行的模式.

它是所有其它多線程設計模式的基礎,所以我首先來介紹它.

把著眼點放在范圍上,這個模式叫臨界區(qū)模式,如果把作眼點放在執(zhí)行的線程上,這個模式就叫

單線程執(zhí)行模式.

首先我們來玩一個鉆山洞的游戲,我 Axman,朋友 Sager,同事 Pentium4.三個人在八角游樂場

循環(huán)鉆山洞(KAO,減肥訓練啊),每個人手里有一個牌子,每鉆一次洞口的老頭會把當前的次序,

姓名,牌號顯示出來,并檢查名字與牌號是否一致.

OK,這個游戲的參與者有游樂場老頭Geezer,Player,就是我們,還有山洞 corrie.

public class Geezer {

public static void main(String[] args){

System.out.println("預備,開始!");

Corrie c = new Corrie();//只有一個山洞,所以生存一個實例后傳給多個Player.

new Player("Axman","001",c).start();

new Player("Sager","002",c).start();

new Player("Pentium4","003",c).start();

}

}

這個類暫時沒有什么多說的,它是一個Main的角色.

public class Player extends Thread{

private final String name;

private final String number;

private final Corrie corrie;

public Player(String name,String number,Corrie corrie) {

this.name = name;

this.number = number;

this.corrie = corrie;

}

public void run(){

while(true){

this.corrie.into(this.name,this.number);

}

}

}

在這里,我們把成員字段都設成final的,為了說明一個Player一旦構造,他的名字和牌號就不能改

變,簡單說在游戲中,我,Sager,Pentium4三個人不會自己偷偷把自己的牌號換了,也不會偷偷地去

鉆別的山洞,如果這個游戲一旦發(fā)生錯誤,那么錯誤不在我們玩家.

import java.util.*;

public class Corrie {

private int count = 0;

private String name;

private String number;

private HashMap lib = new HashMap();//保存姓名與牌號的庫

public Corrie(){

lib.put("Axman","001");

lib.put("Sager","002");

lib.put("Pentium4","003");

}

public void into(String name,String number){

this.count ++;

this.name = name;

this.number = number;

if(this.lib.get(name).equals(number))

test():

}

public String display(){

return this.count+": " + this.name + "(" + this.number + ")";

}

private void test(){

if(this.lib.get(name).equals(number))

;

//System.out.println("OK:" + display());

else

System.out.println("ERR:" + display());

}

}

總結

以上是生活随笔為你收集整理的java 多线程 临界区_多线程编程的设计模式 临界区模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。