java - 我可以调用同步方法来调用非同步方法,而非同步方法又调用同步方法吗?

标签 java multithreading synchronization java-threads

在 Java 中,在单个对象和线程中使用同步关键字。

我可以调用一个同步方法来调用一个非同步方法来调用一个同步方法,而最终的同步方法不会阻塞第一个同步方法的完成吗?

最佳答案

使用单个对象和单个线程,没有问题。

您唯一的线程能够获取所有锁,并且由于可重入性,它可以多次获取它们。

即使我们添加另一个线程,它也会工作(对于一个对象)。一个线程将获取第一个锁,阻塞第二个线程,然后继续正常执行。

对于多个线程和多个对象,答案是“这取决于代码的编写方式”。

关于java - 我可以调用同步方法来调用非同步方法,而非同步方法又调用同步方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29966385/

相关文章:

java - 通过Maven构建项目时如何解决一些依赖?

java - 控制台不打印存储在通过方法调用的变量中的整数

java - 向 JChart2D 的 ChartPanel 添加弹出菜单项

java - 为什么要使用单独的轮询线程和工作线程?

java - java中的进程同步

Java 多线程 - 尝试获取锁直到过了一段时间?

c# - WaitOne() 永远等待,即使所有事件都已触发

java - 如何停止已经执行的TimerTask?

java - 在线程安全单例中,返回是否必须在同步块(synchronized block)内

html - 我可以使用代码暂停 ServiceWorker 同步吗?