38得票9回答
基于参数(命名为mutex/lock)的Java同步化

我正在寻找一种基于方法参数进行同步的方法,类似于这样:public synchronized void doSomething(name){ //some code } 我希望使用name参数使方法doSomething同步,如下所示: 线程1:doSomething("a"); 线程2:...

38得票6回答
Java中同步方法和同步块有什么区别?

Java中的同步方法和同步块有什么区别? 我在网上搜索了答案,人们似乎对这个问题不太确定 :-( 我的看法是两者之间没有区别, 只是同步块的范围更局部,因此锁定时间更短 ?? 在静态方法中锁定时,锁定对象是什么?什么是类锁?

37得票6回答
你应该同步运行方法吗?为什么或者为什么不?

我一直认为在一个实现了Runnable接口的Java类中同步run方法是多余的。我正在尝试弄清楚人们为什么这样做:public class ThreadedClass implements Runnable{ //other stuff public synchronized ...

34得票6回答
@synchronized是否保证线程安全?

参考这个答案,我想知道这是否正确? @synchronized并不能使任何代码“线程安全”。 我试图找到任何支持这种说法的文档或链接,但没有成功。 欢迎发表评论和/或回答。 为了更好的线程安全性,我们可以选择其他工具,这对我来说是已知的。

33得票3回答
Java中的synchronized是否可继承?

我有一个超类Point和一个synchronized方法draw()。如果我在子类中重写draw()方法,那么Point的子类会继承synchronized吗?还是我必须总是写它?

33得票4回答
两个同步方法是否同时执行?

我有一个类里面有4个方法 (m1, m2, m3, 和 m4)。其中,m1, m2, 和 m3 都是 synchronized 方法。另外,我有4个线程 t1, t2, t3, 和 t4。 当 t1 访问 m1 方法(同步方法)时,是否可以同时访问 m2 方法(同步方法)?如果不行,那么 t...

32得票3回答
同步方法递归调用自身。这个有问题吗?

这个问题的重点是说明Java并未按照我的预期工作。你会如何期望以下代码的行为?public class SynchTester { private static SynchTester synchTester; public synchronized static SynchTest...

31得票1回答
在Objective-C中从@synchronized块中返回

有人能告诉我在 @synchronized 块内部返回是否可行吗? 例如: - (id)methodThatReturnsSomething:(BOOL)bDoIt { @synchronized(self) { if(!...

30得票2回答
学习Java,使用synchronized关键字

我正在测试使用synchronized关键字。这是我尝试的一个例子:public class MyTest { static int i = 0; public static void main(String[] args) { new Thread(t1).s...

30得票5回答
在哪些情况下,空的同步块可以实现正确的线程语义?

我在查看代码库时翻阅了一份FindBugs报告,其中一个触发的模式是一个空的synchronized块(例如synchronized (var) {})。文档说: 空的同步块比大多数人认为的更加微妙和难以正确使用,并且空的同步块几乎从未是比其他不那么牵强的解决方案更好的解决方案。 ...