concurrency相关内容

如果当前作业未完成,Cron 会开始新作业吗?

可能的重复: 如何防止cron作业执行,如果它已经在运行 我有一个 cron 作业,可能需要 2 分钟或 5 小时才能完成.我需要确保始终执行此作业. 我的问题是: 如果我将它设置为每分钟执行一次,它会在前一个完成后启动还是它们同时运行并弄乱数据库? 解决方案 它们将同时运行.围绕此的标准做法是创建一个文件锁(通常称为 flock),如果该锁不可用,则不要运行. ..
发布时间:2022-01-03 23:52:15 其他开发

Clojure 的 pmap 函数为 URL 获取操作生成了多少个线程?

关于 pmap 函数的文档让我想知道对于通过网络获取 XML 提要集合之类的事情会有多高效.我不知道 pmap 会产生多少并发提取操作以及最大值是多少. 解决方案 如果你查看源码你会看到: >(使用'clojure.repl)>(源 pmap)(定义 pmap“就像地图一样,除了 f 是并行应用的.半懒惰的地方在于并行计算保持在消耗之前,但不会除非需要,否则实现整个结果.只对有用计算密集 ..
发布时间:2022-01-02 23:02:17 其他开发

从队列中消费的 Clojure 代理

我正在尝试找出使用代理使用消息队列 (Amazon SQS) 中的项目的最佳方法.现在我有一个函数 (process-queue-item) 从队列中抓取一个项目并处理它. 我想同时处理这些项目,但我不知道如何控制代理.基本上,我想让所有的代理尽可能地忙碌,而不是从队列中提取许多项目并开发积压(我将在几台机器上运行它,所以项目需要留在队列中,直到它们真的需要). 谁能给我一些关于改进我 ..
发布时间:2022-01-02 22:44:16 其他开发

执行上下文和调度程序 - 最佳实践、有用的配置和文档

Scala 执行上下文和调度程序 - 列表和比较:为什么? 关于什么/如何/什么是在 Scala 中执行期货的最佳执行上下文以及如何配置调度程序存在很多问题.我仍然无法找到更长的列表,其中包含优缺点和配置示例. 我能找到的最好的是 Akka 文档:http://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html 和 Play 文档 ..
发布时间:2022-01-02 22:18:03 其他开发

“CompletionStage"和“CompletableFuture"有什么区别

我在他们每个人中都看到了一个例子,但我需要确切地知道 deep 的区别是什么,因为有时我认为我可以同时使用它们来获得相同的结果,所以我想知道以便我可以选择正确的? 分别使用它们有什么好处? 就像这个例子一样: public CompletionStagegetNextQueryUUID() {返回 CompletableFuture.supplyAsync(() -> {String ..
发布时间:2022-01-02 21:48:45 Java开发

git 并行拉多个遥控器

我有一个包含数千个遥控器的存储库,我想同时从数千个遥控器中拉取数据,理想情况下我可以指定同时执行的最大数量. 我无法在联机帮助页、谷歌或 git-scm 中找到与此相关的任何内容. 完全清楚:我不想在多个存储库上运行一个命令,我有一个包含数千个遥控器的存储库. 这与子模块无关,不谈子模块.子模块与 git remotes 无关. 解决方案 从 Git 开始 2.24它现在 ..
发布时间:2022-01-02 16:58:49 其他开发

是否使用嵌套选择原子操作进行更新?

我需要先选择(假设)数据库中的 10000 行并返回它们.一次可能会有更多的客户端执行此操作.我想出了这个查询: update v set v.batch_Id = :batchId来自 tblRedir v内部联接 (选择前 10000 个 ID来自 tblRedir其中 batch_Id 为空按日期升序排序) v2 上 v.id=v2.id 这是一个由更新和嵌套选择组成的操作.两个查询都在 ..
发布时间:2022-01-02 16:13:56 数据库

函数式语言(特别是 Erlang)如何/为什么可以很好地扩展?

一段时间以来,我一直在关注函数式编程语言和功能日益增长的知名度.我调查了他们,没有看到上诉的原因. 然后,最近我在 Codemash 参加了 Kevin Smith 的“Erlang 基础"演讲. 我很喜欢这次演讲,并了解到函数式编程的许多特性使避免线程/并发问题变得更加容易.我理解缺乏状态和可变性使得多个线程无法更改相同的数据,但是 Kevin 说(如果我理解正确的话)所有通信都是通 ..

在 hashmap 中,向桶的内部链表添加新元素总是在最后.为什么?

在哈希图中,当我们有相同的哈希码时,我们将对象作为链接列表插入,然后将其转换为 TreeNode.每个具有相同哈希码的新对象都被添加到所附链表的最后一个.所以,我的问题是为什么我们不添加新元素作为附加到存储桶的内部链表的第一个元素?为什么要遍历到最后一个元素,然后再添加新元素. 链接列表花费的时间: 在开始处插入新元素 = O(1) 在末尾插入新元素 = O(n) 一个可能 ..
发布时间:2022-01-01 18:47:50 Java开发

swift中的互斥替代方案

我在多个线程之间有一个共享内存.我想防止这些线程同时访问这块内存.(比如生产者-消费者问题) 问题: 一个线程向队列添加元素,另一个线程读取这些元素并删除它们.他们不应同时访问队列. 这个问题的一个解决方案是使用互斥锁. 正如我发现的,Swift 中没有互斥锁.Swift 中有其他选择吗? 解决方案 正如人们所评论的(包括我),有几种方法可以实现这种锁定.但我认为 ..
发布时间:2022-01-01 11:56:42 移动开发

IIS 8.5 的并发请求数设置

在 IIS 8.5 中可以执行多少个并发请求? 我找不到在 IIS 8.5 中可以执行多少并发请求的正确值 正如我在下面发现的 2 个不同的值: 默认情况下,IIS 8.5 可以根据 aspnet.config 中的 MaxConcurrentRequestsPerCPU 设置处理 5000 个并发请求 在 machine.config 中,默认情况下每个 CPU 的最大连 ..
发布时间:2021-12-31 20:05:34 服务器开发

Java中定时任务的并发执行

我有一个 TimerTask 旨在以特定时间间隔收集指标.但是有可能任务执行的周期小于任务执行的时间(偶尔会出现超时和延迟). 有没有一种方法可以同时执行多个 TimerTask 或 Runnables、线程等,而无需等待前一个任务完成? 我知道 Timer 使用单线程,ScheduledThreadPoolExecutor 会延迟执行,不管速率如何. 谢谢. 解决方案 ..
发布时间:2021-12-31 15:37:54 Java开发

正确更新摆动组件?

我是摇摆的新手,感谢任何帮助. 在这段代码中,我将一张卡片正面朝上翻转,如果结果它们不匹配,我希望它们再次正面朝下翻转. 目前正在发生的事情:1.当点击第一张卡片时2. 当第二张卡片被点击时,会发生两种情况(a) 如果他们是一样的,他们都会熬夜,这就是我想要的(b) 如果它们不相同,我根本不会看到第二张卡片,因为它会立即重新显示卡片的背面(以及我的方法中定义的前一张卡片的背面). ..
发布时间:2021-12-31 15:37:36 Java开发

nodejs 并行回调设计模式

我正在努力寻找一种好的模式来执行一堆并行任务. 让我定义一些任务来举例说明.任务 a, b, c, d, e, f, g 执行为 a(function(er, ra){//task a 返回,ra 是结果}),b 到 g 也是如此 还有一些任务是在某个任务完成后才执行的,我们称它们为ab, bc, abc, bd, bcd, af, fg,意思是当a 和 b 已经返回 ab(ra, rb ..

Common Lisp 并行编程

我想在 Common Lisp 中并行实现我的粒子过滤算法.粒子过滤和采样可以并行化,我想为我的 4 核机器执行此操作.我的问题是在 CL 中并行编程是否可行,如果可行,是否有任何关于 CL 中并行计算入门的好读物和教程. 解决方案 绝对可行! 波尔多线程项目为许多实现提供线程原语;我建议使用它而不是 SBCL 的特定于实现的原语(特别是如果您不在 SBCL 上!). bt 提 ..
发布时间:2021-12-30 21:46:17 其他开发

使用 >> 将多个并行进程的输出通过管道传输到一个文件是否安全?

我正在从网络上抓取数据,并且我的抓取器有多个并行运行的进程. 我希望每个进程的输出都在同一个文件中.只要文本行保持完整并且不会相互混淆,行的顺序无关紧要.在 UNIX 中,我可以使用 >> 操作符将每个进程的输出通过管道传送到同一个文件吗? 解决方案 没有.不保证线路将保持完整.它们可以混合在一起. 根据 liori 的回答进行搜索,我找到了this: {PIPE_BUF ..
发布时间:2021-12-30 21:46:05 服务器开发

如何使已编写的并发程序在 GPU 阵列上运行?

我有一个用 Erlang 编写的神经网络,我刚买了一块 GeForce GTX 260 卡,上面有 240 核 GPU.使用 CUDA 作为胶水在显卡上运行它是否微不足道? 解决方案 不,使用 CUDA 不是一件小事. CUDA 编程模型基本上使用 C(有一些附加功能),但为了充分利用 GPGPU 的功能,您必须确保您的算法遵循 CUDA 指南.(请参阅 NVidia CUDA 编程 ..
发布时间:2021-12-30 21:45:38 其他开发

Task.WhenAll 结果排序

我从此处了解到Task.Whenall 不是确定性的,但我找不到有关结果顺序的任何信息. 结果集合是否会按照输入中的任务排序或结果可以按任何顺序包含结果? 从我做的测试来看,它似乎保留了订单,但我需要确认. 解决方案 来自 MSDN: Task.WhenAll(IEnumerable) 这是包含此语句的四个重载中唯一的一个: 如果没有任务发生故障并且没有任务被取消,则 ..

用户级线程 (ULT) 和内核级线程 (KLT) 在并发执行方面有何不同?

这是我的理解;请更正/添加: 在纯 ULT 中,多线程进程本身进行线程调度.因此,内核本质上没有注意到差异并将其视为单线程进程.如果一个线程进行阻塞系统调用,则整个进程都会被阻塞.即使在多核处理器上,除非进程被阻塞,否则一次只能运行进程的一个线程.不过我不确定 ULT 有多大帮助. 在纯 KLT 中,即使一个线程被阻塞,内核也会调度同一进程的另一个(就绪)线程.(在纯 KLT 的情况下 ..