Java multi-thread security
Package SwingExample; public class MultiThreadSafe implements Runnable {private int nTicketCount = 10; // number of remaining train tickets private String strPurchaserName; // name of the purchaser public static void main (String [] args) {// TODO Auto-generated method stubMultiThreadSafe t = new MultiThreadSafe ("man"); t. buyTickets ();} public void buyTickets () {// assume that a maximum of five people can buy tickets simultaneously. 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 MultiThre AdSafe (String strPurchaserName) {// TODO Auto-generated constructor stubthis. strPurchaserName = strPurchaserName;} @ Overridepublic void run () {// TODO Auto-generated method stubwhile (nTicketCount> 0) {synchronized ("") {// multi-thread synchronization nTicketCount --; if (nTicketCount = 0) {System. out. println (this. strPurchaserName + "come to purchase tickets, but tickets are sold out! ");} Else if (nTicketCount> 0) {System. out. println (this. strPurchaserName + "come to purchase tickets, current remaining votes:" + nTicketCount);} else {System. out. println ("the ticket remaining management system is abnormal. Contact the system administrator. ") ;}} Try {Thread. sleep (100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke. printStackTrace ();}}}}