Questions tagged «concurrent-programming»

8
Java中是否有Mutex?
Java中是否有Mutex对象或一种创建对象的方法?我问是因为用1许可初始化的Semaphore对象对我没有帮助。考虑这种情况: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } 如果在第一次获取时发生异常,则catch块中的释放将增加许可,并且该信号量不再是二进制信号量。 正确的方法是吗? try { semaphore.acquire(); //do stuff } catch (Exception e) { //exception stuff } finally { semaphore.release(); } 上面的代码是否可以确保信号量是二进制的?

9
yield()的主要用途是什么,它与join()和interrupt()有何区别?
我yield()对Java 中方法的使用有些困惑,尤其是在下面的示例代码中。我也读过yield()是“用来防止线程执行的”。 我的问题是: 我相信下面的代码在使用yield()和不使用时都会产生相同的输出。这样对吗? 实际上,的主要用途是yield()什么? 在哪些方面yield()从不同join()和interrupt()方法? 代码示例: public class MyRunnable implements Runnable { public static void main(String[] args) { Thread t = new Thread(new MyRunnable()); t.start(); for(int i=0; i<5; i++) { System.out.println("Inside main"); } } public void run() { for(int i=0; i<5; i++) { System.out.println("Inside run"); Thread.yield(); } } } …

7
如何让2个JVM互相交谈
我有以下情况: 我有2个JVM进程(实际上是2个java进程单独运行,而不是2个线程)在本地计算机上运行。我们称它们ProcessA为ProcessB。 我希望他们彼此交流(交换数据)(例如,ProcessA发送消息ProcessB以执行某项操作)。 现在,我通过编写一个临时文件来解决此问题,并且这些过程会定期扫描此文件以获取消息。我认为这种解决方案不是很好。 什么是实现我想要的更好的选择?

5
Java 8:并行FOR循环
我听说Java 8提供了许多有关并发计算的实用程序。因此,我想知道并行化给定for循环的最简单方法是什么? public static void main(String[] args) { Set<Server> servers = getServers(); Map<String, String> serverData = new ConcurrentHashMap<>(); for (Server server : servers) { String serverId = server.getIdentifier(); String data = server.fetchData(); serverData.put(serverId, data); } }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.