
java 创建对象问题
classXc9implementsRunnable{publicstaticintchepiao=100;Stringaa=newString("1");//字符串随意...
class Xc9 implements Runnable
{
public static int chepiao = 100;
String aa = new String("1"); //字符串随意定义,定义在函数上边
//synchronized 的作用是,让它所管辖的代码部分,要么全部执行完,要么全部不执行
public void run() //synchronized修饰函数不需要字符串,相当于默认是this
{
while (true)
{
synchronized (aa) //既可以修饰代码块,又可以修饰函数
{
if (chepiao > 0)
{
System.out.println("第"+Thread.currentThread().getName()+"个车站正在卖第"+(101-chepiao)+"张车票");
--chepiao;
}
else
{
break;
}
}
}
}
}
public class L6_9
{
public static void main(String[] args)
{
Xc9 xc9=new Xc9();
Thread ee = new Thread(xc9);
ee.start();
Thread ff = new Thread(xc9);
ff.start();
}
}
----------------------------------------------------
为什么用下面这个会不能实现想要的结果?
Xc9 xc91=new Xc9();
Thread ee=new Thread(xc91);
ee.start();
Xc9 xc92=new Xc9();
Thread ff=new Thread(xc92);
ff.start();
} 展开
{
public static int chepiao = 100;
String aa = new String("1"); //字符串随意定义,定义在函数上边
//synchronized 的作用是,让它所管辖的代码部分,要么全部执行完,要么全部不执行
public void run() //synchronized修饰函数不需要字符串,相当于默认是this
{
while (true)
{
synchronized (aa) //既可以修饰代码块,又可以修饰函数
{
if (chepiao > 0)
{
System.out.println("第"+Thread.currentThread().getName()+"个车站正在卖第"+(101-chepiao)+"张车票");
--chepiao;
}
else
{
break;
}
}
}
}
}
public class L6_9
{
public static void main(String[] args)
{
Xc9 xc9=new Xc9();
Thread ee = new Thread(xc9);
ee.start();
Thread ff = new Thread(xc9);
ff.start();
}
}
----------------------------------------------------
为什么用下面这个会不能实现想要的结果?
Xc9 xc91=new Xc9();
Thread ee=new Thread(xc91);
ee.start();
Xc9 xc92=new Xc9();
Thread ff=new Thread(xc92);
ff.start();
} 展开
2个回答
展开全部
String aa = new String("1");
是私有对象(不是private的意思)
Xc9 xc91=new Xc9();
Xc9 xc92=new Xc9();
你的aa相对于xc91、xc92私有
所以不是你要的效果
方法一:
把aa改成静态static对象
方法二:
只对一个Xc9多线程
Xc9 xc91=new Xc9();
Thread ee=new Thread(xc91);
ee.start();
Thread ff=new Thread(xc91);
ff.start();
是私有对象(不是private的意思)
Xc9 xc91=new Xc9();
Xc9 xc92=new Xc9();
你的aa相对于xc91、xc92私有
所以不是你要的效果
方法一:
把aa改成静态static对象
方法二:
只对一个Xc9多线程
Xc9 xc91=new Xc9();
Thread ee=new Thread(xc91);
ee.start();
Thread ff=new Thread(xc91);
ff.start();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询