package thread;
class SaleTicket extends Thread{
public SaleTicket(String name) {
// TODO Auto-generated constructor stub
super();
}
static int num = 50;
Object o = new Object();
// static String o = new String();
@Override
public void run(){
while(true){
synchronized(this){
if(num > 0){
System.out.println(
Thread.currentThread().getName() + "售出" + num + "票");
num--;
}else{
System.out.println("没了");
break;
}
}
}
}
}
public class Demo04 {
public static void main(String[] args){
SaleTicket st = new SaleTicket("1");
SaleTicket st2 = new SaleTicket("2");
SaleTicket st3 = new SaleTicket("3");
st.start();
st2.start();
st3.start();
}
}
结果
Thread-1售出50票
Thread-0售出50票
Thread-0售出48票
Thread-2售出50票
Thread-0售出47票
Thread-1售出49票
Thread-0售出45票
Thread-2售出46票
Thread-2售出42票
Thread-2售出41票
Thread-2售出40票
Thread-2售出39票
Thread-0售出43票
Thread-1售出44票
Thread-0售出37票
Thread-2售出38票
Thread-0售出35票
Thread-1售出36票
Thread-0售出33票
Thread-2售出34票
Thread-0售出31票
Thread-1售出32票
Thread-0售出29票
Thread-2售出30票
Thread-0售出27票
Thread-1售出28票
Thread-0售出25票
Thread-2售出26票
Thread-2售出22票
Thread-0售出23票
Thread-1售出24票
Thread-0售出20票
Thread-2售出21票
Thread-0售出18票
Thread-1售出19票
Thread-0售出16票
Thread-2售出17票
Thread-0售出14票
Thread-1售出15票
Thread-0售出12票
Thread-2售出13票
Thread-0售出10票
Thread-1售出11票
Thread-0售出8票
Thread-2售出9票
Thread-0售出6票
Thread-1售出7票
Thread-0售出4票
Thread-2售出5票
Thread-0售出2票
Thread-1售出3票
没了
没了
Thread-2售出1票
没了
package thread;
class SaleTicket extends Thread{
public SaleTicket(String name) {
// TODO Auto-generated constructor stub
super();
}
static int num = 50;
Object o = new Object();
// static String o = new String();
@Override
public void run(){
while(true){
synchronized("w"){
if(num > 0){
System.out.println(
Thread.currentThread().getName() + "售出" + num + "票");
num--;
}else{
System.out.println("没了");
break;
}
}
}
}
}
public class Demo04 {
public static void main(String[] args){
SaleTicket st = new SaleTicket("1");
SaleTicket st2 = new SaleTicket("2");
SaleTicket st3 = new SaleTicket("3");
st.start();
st2.start();
st3.start();
}
}
Thread-0售出50票
Thread-0售出49票
Thread-0售出48票
Thread-0售出47票
Thread-0售出46票
Thread-0售出45票
Thread-0售出44票
Thread-2售出43票
Thread-2售出42票
Thread-2售出41票
Thread-2售出40票
Thread-2售出39票
Thread-2售出38票
Thread-2售出37票
Thread-2售出36票
Thread-2售出35票
Thread-2售出34票
Thread-2售出33票
Thread-2售出32票
Thread-2售出31票
Thread-2售出30票
Thread-2售出29票
Thread-2售出28票
Thread-2售出27票
Thread-2售出26票
Thread-2售出25票
Thread-2售出24票
Thread-2售出23票
Thread-2售出22票
Thread-2售出21票
Thread-2售出20票
Thread-2售出19票
Thread-2售出18票
Thread-2售出17票
Thread-2售出16票
Thread-2售出15票
Thread-2售出14票
Thread-2售出13票
Thread-2售出12票
Thread-2售出11票
Thread-2售出10票
Thread-2售出9票
Thread-2售出8票
Thread-2售出7票
Thread-2售出6票
Thread-2售出5票
Thread-2售出4票
Thread-2售出3票
Thread-2售出2票
Thread-2售出1票
没了
没了
没了
为什么sychronized会输出三个50而将sychronized里的this换成字符串就可以了?