问题标签 [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 回答
2086 浏览

.net - What is this new Axum programming language?

I read this story on slashdot today where they announce a new parallel programming language by Microsoft.

What is this new programming language about? It says Parallel Programming. But is it going to be an alternative/replacement for MPI, PVM, OpenMP and similar parallel libraries/frameworks?

Any thoughts?

0 投票
2 回答
41485 浏览

concurrent-programming - java - 如何在java中停止执行Executor ThreadPool的执行?

我正在研究 java 中的 Executors 以一次同时运行更多线程。我有一组可运行对象并将其分配给执行程序。执行程序工作正常,一切都很好。但是在池中执行所有任务之后,java程序没有终止,我认为执行程序需要一些是时候杀死线程了。请任何人帮助我减少执行者在执行所有任务后所花费的时间。

0 投票
9 回答
2627 浏览

java - 为什么用 Clojure 而不是 Java 进行并发编程

当 Java 提供并发编程的能力时,使用 Clojure(而不是 Java)的主要优势是什么?

0 投票
4 回答
2576 浏览

java - java中清理/删除未使用的地图元素的策略

我在我的网络应用程序中实现了一个“管理器”,可以调用它来设置和获取当前线程所在的网站上下文(我们给我们的网站贴上白标签,所以网站上下文代表我们在哪个网站上)

我正在尝试找出执行此操作的最佳策略,目前我正在并发哈希映射中将线程存储到 WebSiteContexts:

在线程开始时(通过 Servlet 过滤器或通过手动设置),线程将关联到它的 WebSiteContext,

但想清理 Map 以避免内存泄漏。所以我想一种策略是遍历映射的 Thread 键以找出线程是否“活动”(thread.isAlive()),如果没有删除它,例如这样:

,但我想这需要我同步对地图的访问(或者是吗?)这是我想要避免的。

是否有任何“惯用”模式用于在 java 中的线程中存储属性或确实清理以 Thread 对象作为键的映射?我愿意使用 Wea​​kReference / SoftReferences,或者如果有一些等价的 Thread.getCurrentThread().setAttribute(Object, Object),那就太好了

干杯西蒙B

0 投票
2 回答
486 浏览

process - 为什么这个erlang代码不起作用?


这个想法是将 fib(N) 过程分为两个过程,一个是计算 fib(N-2),另一个是计算。fib(N-1) 同时为 fib(N)=fib(N-1)+fib(N-2)。当我运行前面的代码时,什么也没有发生,光标停止在有限循环中或等待未到达的结果。
plzzz我需要帮助我是一个新的Erlang程序员,在此先感谢:)

0 投票
4 回答
1946 浏览

php - PHP 循环性能优化

我正在编写一个 PHP 函数,该函数需要遍历一个指针数组,并为每个项目拉入该数据(无论是来自 MySQL 数据库还是平面文件)。有没有人有任何优化这个的想法,因为可能有成千上万的迭代?

我的第一个想法是拥有一个我处理的缓存数据的静态数组,任何修改只会更改该缓存数组,然后最后我可以将它刷新到磁盘。但是,在超过 1000 个项目的循环中,如果我只在数组中保留大约 30 个,这将毫无用处。每个项目都不是太大,但内存中的 1000 多个项目太多了,因此需要磁盘存储。

数据只是 gzip 压缩的序列化对象。目前我正在使用数据库来存储数据,但我想也许平面文件会更快(我不关心并发问题,我不需要解析它,只需解压缩和反序列化)。我已经有一个自定义迭代器,它将一次拉入 5 个项目(以减少数据库连接)并将它们存储在此缓存中。但同样,当我需要迭代数千个时使用 30 的缓存是相当没用的。

基本上我只需要一种方法来快速迭代这些项目。

0 投票
15 回答
12926 浏览

multithreading - 如何更好地解释“僵局”?

我正在努力用简单的话来解释线程中的“死锁”,所以请帮忙。什么可能是“死锁”(例如,在 Java 中)的最佳示例,它是如何分步发生的以及如何防止它?但没有深入细节。我知道这就像问两个相反的事情,但仍然如此。如果你之前有任何并发​​编程培训经验——那就太棒了!

0 投票
3 回答
11578 浏览

multithreading - 并行编程==多线程编程?

并行编程==多线程编程?

0 投票
1 回答
371 浏览

java - 分配工作的有效算法?

解释起来有点复杂,但我们开始吧。基本上,问题是“如何以有效的方式将问题分解为子问题”。这里的“高效”意味着分解的子问题尽可能大。基本上,如果我根本不需要分解问题,那将是理想的。然而,因为一个工人只能处理特定的问题,我确实需要分手。但我想找到一种尽可能粗略的方法。

这是一些伪代码..

我们有这样的问题(对不起,它是在 Java 中。如果你不明白,我很乐意解释)。

一个子问题是:

那么,工作将是这样的。

现在我们有了 'Worker' 的实例,它们有自己的 state sections I have

唷。

所以,我们有很多Problems 并且Workers不断地要求更多SubProblems。我的任务是分解ProblemsSubProblem交给他们。然而,困难在于,我必须稍后收集 SubProblems 的所有结果并将它们合并(减少)到Result整个Problem.

然而,这是昂贵的,所以我想给工人尽可能大的“块”(尽可能多targetedSections)。

它不必是完美的(在数学上尽可能高效或其他)。我的意思是,我想不可能有一个完美的解决方案,因为你无法预测每次计算需要多长时间等等。但是有一个很好的启发式解决方案吗?或者也许我可以在开始设计之前阅读一些资源?

任何建议都非常感谢!

编辑:我们也可以控制部分分配,因此控制它是另一种选择。基本上,对此的唯一限制是工人只能拥有固定数量的部分。

0 投票
2 回答
610 浏览

c - 多线程或多线程进程

我必须模拟一个游戏,其中每个玩家都有轮流并且需要“注意”正在发生的事情。

到目前为止,我知道每个玩家都需要两个线程,一个会一直休眠到轮到玩家,另一个会注意。

我的问题是:我应该将每个玩家作为一个“叉子”和叉子上的线程工作,还是只是为玩家创建一些线程并以某种方式关联它们?

这是我第一次使用并发、信号量和线程,所以我不确定好的实践和编程风格。