java 實現多執行緒買票
今天同桌問了一個我一個多執行緒的問題,其實很簡單,但是,我沒有馬上解決
今天記錄一下,
synchronized 加鎖,有一點小心的是,這個只能對物件加鎖,因為所有的物件的父親都是object
其中onject 有相關的執行緒操作的方法,之前,我對共用資源使用的 int ,,所以,無法對共有資源加鎖,
因為是對一個static 資源操作,所以我有的資源都是一個源頭
class Buy extends Thread {
private static volatile Integer ticket = 50;private String name;
public Buy(String name) {
this.name = name;
}
@Override
public void run() {
synchronized (ticket) {
while (ticket > 1) {
System.out.println(name + "------" + ticket);
ticket--;
}
}
}
}
public class Main {
public static void main(String[] args) {
Buy buyA = new Buy("A");
Buy buyB = new Buy("B");
Buy buyC = new Buy("C");
buyA.start();
buyB.start();
buyC.start();
}
}