本帖最后由 张向辉 于 2013-1-16 11:05 编辑
- public class b implements Runnable {
- Demo1 demo1 = new Demo1();
- @Override
- public void run() {
- synchronized (demo1) {
- demo1.method();
- try {
- Thread.sleep(5000);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- System.out.println(e.toString());
- }
- }
- }
- public static void main(String args[]) {
- Thread t1 = new Thread(new b());
- Thread t2 = new Thread(new b());
- t1.start();
- t2.start();
- }
- }
- class Demo1 {
- public void method() {
- System.out.println(Thread.currentThread().getName() + "正在运行。。。");
- }
- }
复制代码 /*
* 说明下我的想法是t1,t2启动,先打印“Thread-0正在运行 ” 等到5秒钟后再打印“Thread-1在运行。。。” 可是为什么他们同时打印出来 才停5秒呢
* synchronized不是把对象锁定了吗5秒后才释放的?请各位指点下 谢谢
*/ |