java - 如何在java中最有效且无需同步地使用多个线程?

标签 java multithreading thread-safety

有一个巴士预订网站,大约有 10 万个线程正在运行,但总座位数只有 20 个。您将如何控制性能以及 Java 多线程的方法是什么?

我回答说我将采用同步方法或 block ,因为它将控制并发线程,而锁定将阻止异步执行。

但是面试官打断了我,说同步是一个虚假的想法,性能会下降,而且没有帮助。

如果我缺少任何其他可以解决此问题的有用的多线程概念,请告诉我

最佳答案

你必须使用permits 20的Semaphore,如果乘客被认为是线程的话,这意味着一次可以有20个乘客占用座位。这可能仅在核心 java 多线程的情况下才有答案。

关于java - 如何在java中最有效且无需同步地使用多个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56102833/

相关文章:

java - 单线程在多核处理器上的数据可见性

java - 如何保护单例类方法在 Java 中是线程安全的?

java - 触摸图表会显示一些虚线选择矩形

java - 无法从 PDFA1-a 格式文档中提取图像

java - 使用 Java ProcessBuilder 运行具有多个参数的 Windows .exe 文件不会按预期生成任何输出文件

java - 如何让一个执行器FixedThreadPool等待另一个执行器SingleThreadExecutor?

ios - 在后台线程中对象释放得太快

java - 无法让 JMagick 工作

java - 调度的Executor任务线程发生异常如何通知主线程?

c++ - 在 `std::get<I>` 上使用 `std::tuple` 是否保证对于 `I` 的不同值是线程安全的?