问题标签 [concurrent-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5956 浏览

java - 用于管理任务的 Java 框架

我的问题是,Java 中是否存在用于管理和并发运行具有逻辑依赖关系的任务的框架。

我的任务如下:我有很多独立的任务(比如说 A、B、C、D ...),它们被实现为命令(就像在命令模式中一样)。我想要一种执行器,它将接受所有这些任务并以并行方式执行它们。任务可以相互依赖(例如,我不能运行 C,在运行 A 之前)、同步或异步。

我还想结合自定义启发式方法来影响调度程序的执行,例如,如果任务 A 和 B 是 CPU 密集型的,并且 C 具有很高的内存消耗,那么并行运行 A 和 C 是有意义的,而不是运行 A 和 B。

在我自己开始构建这些东西之前(我正在考虑基于 java.util.concurrent + 注释的约束/规则),我想知道是否有人可以向我指出一些可以满足我需求的项目。非常感谢提前

0 投票
2 回答
6903 浏览

java - java并发编程的ExecutorService如何使用?

我正在使用下面的代码在远程服务器上上传图像。当我在下面使用它时,它会将所有图像同时上传到远程服务器上。

每当我使用下面的代码时

将所有未来对象添加到futurelist立即从runnable返回(不等待runnable直到完成所有图像的上传(后台上传处理正在进行)

但是,每当我在上面的代码中取消注释时,在成功上传每张图片后,它都会从可运行文件返回。

我的代码有什么问题吗?一次可以进行更多的远程服务器连接还是服务器上有任何负载?如何使用并发编程java上传图像?请给我们指导?

submit()和功能是否execute()具有相同的效果?

0 投票
1 回答
2155 浏览

java - 并发 Java 1.5+ 中的活动对象模式

我正在尝试使用类在并发 Java 中开发活动对象模式。java.util.concurrent

我用 aClient和 a来描述它Server。一个样本Server如下:

和一个样本Client

一个示例Message封装是:

和一个示例运行代码:

我删除了一些实现细节来传达我的信息。

现在,问题是在什么时候,Server传入statetrue消息应该等待并且await在当前消息上调用。但是,我明白IllegalMonitorStateException这意味着当前消息不拥有当前线程来等待它。但是,我认为这很奇怪,因为当前消息在Server其线程池中被调用,因此当前消息也可以访问当前执行线程。

如果您有任何想法或建议,或者使用java.util.concurrent. 提前致谢。

更新:我在这篇
文中讨论了我可以部署的解决方案。我希望它可以帮助。

0 投票
2 回答
1565 浏览

.net - .net 4 中添加的所有并发数据结构的列表?

.net 4 中添加的所有新并发数据结构是否有完整列表?或者像 System.Collections.Concurrent 这样的命名空间列表?

0 投票
8 回答
211823 浏览

java - Java中有互斥锁吗?

java中是否有互斥对象或创建方法?我问是因为用 1 个许可初始化的信号量对象对我没有帮助。想想这个案例:

如果在第一次获取时发生异常,catch 块中的释放将增加许可,并且信号量不再是二进制信号量。

正确的方法会是什么?

上面的代码会确保信号量是二进制的吗?

0 投票
1 回答
1671 浏览

multithreading - 共识价值

在阅读并发编程时,我在 Compare-And-Swap 和 Compare-And-Set 操作中遇到了Consensus Number一词。我很难理解这个术语的含义,谁能解释一下?

谢谢你!!

0 投票
5 回答
8231 浏览

multithreading - 多核和并发编程有什么区别

任何人都可以帮助我,我正在做一个演示文稿,并想包括一些关于 - '多核和并发编程之间的区别',我用谷歌搜索了一下,但没有找到很多好的描述,任何帮助表示赞赏!:)

谢谢,

埃蒙

0 投票
1 回答
1435 浏览

concurrent-programming - stact 框架入门

我一直在查看 Topshelf 代码,并注意到它使用了一个名为“stact.dll”的程序集。似乎没有很多关于这方面的信息。它似乎是一个使用参与者和“通道”构建并发应用程序的库。我发现 Topshelf 代码有点难以理解,但我有兴趣了解有关这种编程风格的更多信息。有人对这个图书馆有任何经验吗?你是如何开始学习如何使用它的?

0 投票
3 回答
5327 浏览

java - Java:停止线程 TCP 服务器的好方法?

我有以下 TCP 客户端-服务器通信结构:

  • 在服务器启动时,服务器启动接受器线程,接受客户端连接并将 ServerSocket 传递给它。
  • 当客户端连接到达时,acceptor 线程调用 ServerSocket 上的 accept() 并将客户端处理作业提交给工作线程(通过执行器/线程池)并为其提供客户端套接字。
  • Worker in loop 从客户端套接字流中读取数据,对其进行处理并发送回复。

问题是如何优雅地停止整个系统?我可以通过关闭 ServerSocket 来停止接受线程。它将导致accept() 阻塞调用抛出SocketException。但是如何阻止工人呢?他们从流中读取,这个调用被阻塞了。根据这个流不会抛出 InterruptedException,因此工作者不能被中断()。

看起来我需要从另一个线程关闭工作套接字,对吗?为此,应将套接字设为公共字段,或者应在 worker 中提供关闭它的方法。这会好吗?或者可能是我的整个设计有缺陷?

0 投票
1 回答
202 浏览

objective-c - 方法调用时是否保留参数?

如果我在 Objective-C 中调用一个带有参数的方法并在后面释放参数。

然后我知道参数在 method1 完成后被释放,因为这些行是线性处理的。但是当我在后台线程中调用该方法时:

然后主线程释放对象,而后台作业使用参数做某事(接受后,在调用该方法之前,retainCount 将为 1)。由于使用了 Zombie(使用了一个已经被释放的对象),我会得到一个错误吗?

问题是:

方法调用是否保留在作为参数的对象上?或者我是否需要在方法的开头调用retain,如果它像上面的问题一样?