JAVA创建两个线程,对一个变量进行处理,a线程给变量加一,b线程给变量减2 100
要求1,a执行完加1后,b执行减2,再a执行,b执行2,变量小于0时,两个线程退出3,该变量初始值作为命令行参数传入...
要求1,a执行完加1后,b执行减2,再a执行,b执行
2,变量小于0时,两个线程退出
3,该变量初始值作为命令行参数传入 展开
2,变量小于0时,两个线程退出
3,该变量初始值作为命令行参数传入 展开
1个回答
展开全部
public class Demo
{
public static void main(String[] args)
{
n=Integer.parseInt(args[0]);
String l="lock";
System.out.println("n="+n);
Thread a=new Thread()
{
public void run()
{
synchronized(l)
{
while(n>=0)
{
n++;
System.out.println("n="+n);
l.notify();
try
{
l.wait();
}
catch(Exception e)
{
}
}
l.notify();
}
}
};
Thread b=new Thread()
{
public void run()
{
synchronized(l)
{
while(n>=0)
{
n-=2;
System.out.println("n="+n);
l.notify();
try
{
l.wait();
}
catch(Exception e)
{
}
}
l.notify();
}
}
};
a.start();
b.start();
}
static int n;
}
{
public static void main(String[] args)
{
n=Integer.parseInt(args[0]);
String l="lock";
System.out.println("n="+n);
Thread a=new Thread()
{
public void run()
{
synchronized(l)
{
while(n>=0)
{
n++;
System.out.println("n="+n);
l.notify();
try
{
l.wait();
}
catch(Exception e)
{
}
}
l.notify();
}
}
};
Thread b=new Thread()
{
public void run()
{
synchronized(l)
{
while(n>=0)
{
n-=2;
System.out.println("n="+n);
l.notify();
try
{
l.wait();
}
catch(Exception e)
{
}
}
l.notify();
}
}
};
a.start();
b.start();
}
static int n;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询