【发布时间】:2018-01-21 18:28:19
【问题描述】:
我们可以同步类中的函数,或者我们可以将其对象锁定在线程中,以在对象上创建线程安全。
class DBresource {
synchronized public void dosomething() throws InterruptedException {
...
...
}
}
或
class MyThread extends Thread {
public void run() {
synchronized (r) {
r.dosomething();
}
}
什么是可取的,为什么?
此外,我也可以锁定 DBResource 类。那会有什么不同?
或者,使用专用的 Lock 对象。这是不鼓励还是喜欢?为什么?
谢谢。
【问题讨论】:
-
@Makoto:我不同意,我认为这是关于锁定代码所属的位置,在受保护的资源中或在访问资源的任务中。
标签: java multithreading synchronization synchronized