que*_*zen 0 java multithreading synchronized
我正在浏览一些查看同步方面的代码片段.我相信锁定发生在物体上.在java的情况下,我们只有对象的引用.Java应该使用引用来获取对象并将其锁定.
如果引用恰好为null会发生什么?我觉得这会破裂.如果这是有效的,锁定也需要在引用上发生(这比我好).有人可以为我澄清这一点.
synchronized (formatters) {
if(formatters == null) {
prepareCache(feedId);
}
}
Run Code Online (Sandbox Code Playgroud)
你得到一个NullPointerException.例如:
class A {
public static void main(String[] ss) {
Object o = null;
synchronized (o) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
给你:
Exception in thread "main" java.lang.NullPointerException
at A.main(A.java:4)
Run Code Online (Sandbox Code Playgroud)
小智 5
"SynchronizedStatement: synchronized ( Expression ) Block"...否则,如果Expression的值为null,则抛出NullPointerException."