A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© izwj 中级黑马   /  2012-3-29 13:43  /  1497 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class ThreadTest implements Runnable {
    int number = 10;
        Object o=new Object();
    public void firstMethod() throws Exception {
        synchronized (this) {
            number += 100;
            System.out.println(number);
        }
    }

    public void secondMethod() throws Exception {
        synchronized (this) {
            //Thread.sleep(2000);
            this.wait(2000);
            number *= 200;
        }
    }

     public void run() {
        try {
            firstMethod();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws Exception {
        ThreadTest threadTest = new ThreadTest();
        Thread thread = new Thread(threadTest);
        thread.start();
        threadTest.secondMethod();
    }
}
两个同步代码块的this是同一个锁吗?

1 个回复

倒序浏览
是的,this就是指向这个类本身,这两个方法都在同一个类中。
并且想要同步就是需要给AB设置同一个锁来保证当A同步代码块执行时B代码不能执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马