【发布时间】:2018-07-13 21:17:00
【问题描述】:
我想知道,如果我创建一个方法synchronized,然后在这个方法中启动一个Thread,其他Threads 什么时候可以使用该方法?
synchronized void someMethod() {
//Do stuff.
new Thread(new Runnable() {
public void run() {
//Do more stuff.
}
}).start();
}
也就是说,当Thread调用someMethod退出时,其他Threads是否能够访问someMethod,或者新创建的Thread也必须完成?
【问题讨论】:
-
新创建的线程没有任何不同/特殊的访问权限。唯一的区别是新线程必须在线程启动之前看到您在同步块中所做的任何更改,即使不能保证任何其他线程。
标签: java multithreading synchronized