在Scala中使用JDBC的示例中,有以下代码:
this.synchronized {
if (!driverLoaded) loadDriver()
}
Run Code Online (Sandbox Code Playgroud)
为什么this.synchronized而不仅仅是synchronized?
自从我开始用Java编程以来,我一直在想这个(大约一年或两年).在C中,我们必须知道正确避免线程之间死锁的不同方法,因此在同步方法之间有更多的选择.
那么Java呢?当我们同步时,它如何避免将线程置于死锁状态?它在内部如何运作?死锁是否被避免,因为我们在更高级别上比在C(或C++)中同步?有关java中的死锁和同步的任何文档?