package thread;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.PreparedStatement;
import java.util.Properties;
public class TestThread {
public static void main(String[] args) throws FileNotFoundException, IOException {
Properties profile = new Properties();
profile.load(new FileInputStream("D:\\workspaces\\springWorkSpace\\thread\\bin\\thread\\ticket.properties"));
int count = Integer.parseInt(profile.getProperty("count"));
Ticket t = new Ticket(count);
Thread t1 = new Thread(new Seller(t),"售票员A");
Thread t2 = new Thread(new Seller(t),"售票员B");
Thread t3 = new Thread(new Seller(t),"售票员C");
Thread t4 = new Thread(new Seller(t),"售票员D");
t1.start();
t2.start();
t3.start();
t4.start();
}
}
class Seller implements Runnable{
private Ticket t;
public Seller(Ticket t){
this.t = t;
}
@Override
public void run() {
while(true){
synchronized ("abc") {
if(t.getCount()<1){
break;
}else{
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
}
t.setCount(t.getCount()-1);
String name = Thread.currentThread().getName();
if(t.getCount()!=0){
System.out.println(name+"卖了一张票,剩余:"+t.getCount()+"张票。");
}else{
break;
}
}
}
}
}
}
class Ticket {
private int count;
public Ticket(int count){
this.count = count;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}