// 哥们 ,搞了2小时终于有结果了, 已经把他搞成了死锁修改了你的部分内容,你可以试试运行。
class Ticket implements Runnable
{
private int tick=12200;
static boolean flag=true;
public void run(){
if(flag)
{
Ticket.flag=false; // 把标记放到这里来
synchronized(OBJ.obj1){ //锁
while(true){
try{Thread.sleep(500);}catch(Exception e){System.out.println("asdfsafsafdaasf");} // 让他冻结,t1 冻结500
System.out.println(Thread.currentThread().getName()+"?????"); // 测试
System.out.println("flag...."+flag); // 测试
kk();
}
}
}
else
{
while(true){
kk();
}
}
}
public synchronized void kk(){ // t1 this
System.out.println(Thread.currentThread().getName()+"....");
synchronized(OBJ.obj1){
if(tick>0)
System.out.println(Thread.currentThread().getName()+"....."+tick--);
}
}
}
class OBJ
{
static Object obj1=new Object();
static Object obj2=new Object();
}
class Thread22
{
public static void main(String[] args)
{
Ticket ticket=new Ticket(); //创建一个对象
Thread t1 = new Thread(ticket);
Thread t2 = new Thread(ticket);
t1.start();
//ticket.flag=false; 这里代码没用,切记,,对于共享的资源要放在同步里。
t2.start();
}
}
|
|