黑马程序员技术交流社区
标题:
为什么我加了同步代码块 还是执行3个?
[打印本页]
作者:
a1ccwt
时间:
2015-8-25 14:39
标题:
为什么我加了同步代码块 还是执行3个?
class lianxi5
{
public static void main(String[] args)
{
fu c = new fu();
Thread t1=new Thread(c);
Thread t2=new Thread(c);
Thread t3=new Thread(c);
t1.start();
t2.start();
t3.start();
}
}
class fu implements Runnable
{
Object s = new Object();
private int x=100;
public void run()
{
synchronized(s)
{
for (int y=0;y<x ;y++ )
{
System.out.println("x"+y);
}
}
}
}
复制代码
作者:
ln0491
时间:
2015-8-25 18:07
s,没有具体的作用了,不太了解
作者:
liuch111
时间:
2015-8-25 18:37
什么意思? 你的需求到底什么呢
你三个线程 当然执行3个了
同步代码保证他们一个一个的去执行
作者:
a1ccwt
时间:
2015-8-25 20:15
liuch111 发表于 2015-8-25 18:37
什么意思? 你的需求到底什么呢
你三个线程 当然执行3个了
是我理解错了, 已经了解。
作者:
腹黑兔
时间:
2015-8-26 12:31
y应该在同步代码块之外进行初始化, 否则每进一次同步代码块就会被初始化一次, 对线程来说是3个不同的y
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2