多线程之synchronized(this)锁定当前对象
昨天讲到了在synchronized(this)代码块里,多个线程调用的话就是同步进行,在其他非synchronized(this)的调用是异步的,具体可以看下这篇文章《多线程之synchronized(this)同步代码块》,今天我们来验证下synchronized(this)是锁定当前对象的。
这边在一个类里,同步代码块里打印0-998,和线程的名字。
线程B和线程A一样就不写了,下面看下测试方法。
从结果可以看到,Thread-1线程会等到线程Thread-0执行完之后再打印,也就是说,synchronized(this)锁定的是当前对象,当一个线程调用了同步代码块,就锁定了当前对象,其他的线程就要等到线程执行完才能进来。这些都是与synchronized修饰方法是一样的,具体可以看下synchronized修饰方法的一些介绍。