黑马程序员技术交流社区
标题:
多线程的问题
[打印本页]
作者:
戎石锁
时间:
2012-8-7 11:05
标题:
多线程的问题
synchronized作用到底是什么?我知道synchronized修饰一个方法时,
这个方法不能被2个线程同时访问,但是为什么m1和m2两个方法都用synchronized修饰时,
打印结果先是1000,然后是b=1000,但只有m1方法用synchronized修饰,m2不被synchronized修饰时,
打印结果是2000,b=2000,有点搞不懂了
public class TT implements Runnable
{
int b=100;
public synchronized void m1()throws Exception
{
b=1000;
Thread.sleep(5000);
System.out.println("b="+b);
}
public synchronized void m2()throws Exception
{
Thread.sleep(2500);
b=2000;
}
public void run()
{
try
{
m1();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
TT tt = new Thread(tt);
t.start();
tt.m2();
System.out.println(tt.b);
}
}
作者:
hello world
时间:
2012-8-7 11:16
TT tt = new Thread(tt);
t.start();
哪有t?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2