亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java刷票程序怎么實現

小億
133
2023-08-31 00:26:59
欄目: 編程語言

實現Java刷票程序的一種方法是使用多線程來模擬多個用戶進行搶票操作。下面是一個簡單的示例:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class TicketBookingSystem {
private static int seatsAvailable = 10; // 總共有10個座位可用
private static Object lock = new Object(); // 創建一個鎖對象用于同步
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(5); // 創建一個線程池,最多同時運行5個線程
for (int i = 0; i < 20; i++) { // 模擬20個用戶搶票操作
executorService.execute(() -> {
try {
bookTicket();
} catch (InterruptedException e) {
e.printStackTrace();
}
});
}
executorService.shutdown(); // 關閉線程池
}
private static void bookTicket() throws InterruptedException {
synchronized (lock) { // 獲取鎖對象,確保同一時刻只有一個線程可以執行以下代碼塊
if (seatsAvailable > 0) { // 如果還有座位可用
System.out.println("用戶 " + Thread.currentThread().getName() + " 搶到了一張票");
seatsAvailable--; // 減少可用座位數量
Thread.sleep(1000); // 模擬用戶操作時間
} else {
System.out.println("用戶 " + Thread.currentThread().getName() + " 沒有搶到票");
}
}
}
}

以上代碼創建了一個線程池,模擬了20個用戶同時進行搶票操作。使用synchronized關鍵字確保同一時刻只有一個線程可以執行bookTicket()方法,通過判斷seatsAvailable變量來判斷是否還有座位可用。如果有座位可用,則搶到票,并將可用座位數量減少1;如果沒有座位可用,則沒有搶到票。為了模擬用戶操作時間,使用Thread.sleep()方法使線程休眠1秒。

請注意,以上代碼只是一個簡單的示例,并沒有考慮更復雜的情況,比如可能會出現競態條件或線程安全問題。在實際應用中,可能需要更復雜的并發控制和線程安全處理。

0
旺苍县| 梅州市| 惠州市| 绥德县| 荆州市| 剑阁县| 无为县| 从化市| 荥阳市| 武义县| 石嘴山市| 石河子市| 望谟县| 同心县| 长丰县| 琼结县| 京山县| 拉萨市| 内丘县| 上饶市| 华安县| 广东省| 奎屯市| 文昌市| 广灵县| 岑巩县| 灵台县| 墨竹工卡县| 巴林左旗| 临邑县| 连江县| 宜丰县| 福建省| 新乐市| 湘西| 工布江达县| 万州区| 西畴县| 肥城市| 轮台县| 瑞丽市|