Java多安全執行緒,java多線程
package SwingExample;public class MultiThreadSafe implements Runnable{private int nTicketCount = 10;// 剩餘火車票數量private String strPurchaserName;// 購票人姓名public static void main(String[] args) {// TODO Auto-generated method stubMultiThreadSafe t = new MultiThreadSafe("man");t.buyTickets();}public void buyTickets() {// 假定最多支援5個人同時購票MultiThreadSafe man1 = new MultiThreadSafe("man1");MultiThreadSafe man2 = new MultiThreadSafe("man2");MultiThreadSafe man3 = new MultiThreadSafe("man3");MultiThreadSafe man4 = new MultiThreadSafe("man4");MultiThreadSafe man5 = new MultiThreadSafe("man5");Thread t1 = new Thread(man1);Thread t2 = new Thread(man2);Thread t3 = new Thread(man3);Thread t4 = new Thread(man4);Thread t5 = new Thread(man5);t1.start();t2.start();t3.start();t4.start();t5.start();}public MultiThreadSafe(String strPurchaserName) {// TODO Auto-generated constructor stubthis.strPurchaserName = strPurchaserName;}@Overridepublic void run() {// TODO Auto-generated method stubwhile (nTicketCount > 0) {synchronized("") {// 多線程同步nTicketCount--;if (nTicketCount == 0) {System.out.println(this.strPurchaserName + "前來購票,但票已售完!");}else if (nTicketCount > 0) {System.out.println(this.strPurchaserName + "前來購票,當前餘票:" + nTicketCount);}else {System.out.println("餘票管理系統異常,請聯絡系統管理員。");}}try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}