问题标签 [concurrent.futures]
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.
scala - 未来地图的(等待)执行上下文。使用 FixedThreadPool 停止执行
每个doServiceStuff(name:String)
需要 5 秒。doServiceStuff 没有隐式 ex:Execution 上下文作为参数,它在内部使用自己的 ex 上下文并Future {blocking { .. }}
对其执行。
最后程序打印:
如果我将 1000 更改为10000,添加更多任务:val ss = (1 to 10000)
然后程序停止:
将打印约 17 027 行(共 20 000 行)。不会打印“错误”消息。不会打印“接受”消息
**并且不会再处理任何事情。
但是,如果我将 exContext 更改为ExecutionContext.fromExecutor(null: Executor)
(global one),那么 in 会在大约 10 秒内结束(但通常不会)。
这就是问题所在:为什么使用固定的前上下文池它会在没有消息传递的情况下停止,但对于全局前上下文它会终止但有错误和消息传递?
有时..它是不可重现的。
更新:我确实看到了"ERROR"
,"took"
如果我将池从 1 增加到 N。不管 N 有多高 - 它仍然会是错误。
代码在这里:https ://github.com/Sergey80/scala-samples/tree/master/src/main/scala/concurrency/apptmpl
python - 将 concurrent.futures 与龙卷风事件循环一起使用?
如何偶尔在 Tornado 应用程序中使用线程和期货?
我的服务器偶尔需要在单独的线程或进程中运行长时间运行的任务(该任务释放 GIL。)我想使用 concurrent.futures 执行器来执行此操作
如何将这个未来集成到 Tornado 事件循环中?理想情况下,这种集成与tornado.gen
协程配合得很好。我想从未来中屈服,而不是阻碍它。实现这一目标的最佳方法是什么?
理想情况下,我想从concurrent
Future
.
我正在寻找f
使以下成为可能的功能
python - 如何在使用 Python 3 抓取的同时同时启动 5 个 url 的函数
我正在抓取一个网站以获取信息,并希望从每个页面都可用的翻译页面中获取一些信息。
所以我写了一个函数去相应的页面并获取翻译的信息。唯一的问题是我必须等待它首先是法语,然后是意大利语,然后是德语,然后是西班牙语,然后是英语......我想一次得到它们。
我在英文版上抓取网站,然后当我到达目标页面时,我想同时处理。我已经阅读了很多关于如何对刮板的整个脚本进行多处理的文章,但我只是希望它在刮的这一点上这样做,因为它是瓶颈所在。这是该部分的代码目前的样子:
如果可能,我想同时触发该函数的五个实例?可能很简单,只是还没有灯泡的时刻。
java - FutureTask.awaitDone 对 CPU 的影响
我们广泛使用 Java ThreadPoolExecutor。具体来说,我们遵循 fork join 模式,构建一个可调用列表并在它们上使用 invokeAll() 的定时变体。我们只使用这些线程池来执行 I/O(非 CPU 密集型)操作,但是查看线程转储,我们看到这些特定线程消耗大量 CPU。查看 FutureTask.awaitDone() 的实现,我可以看到通过对 LockSupport.parkNanos() 的交错调用实现了忙等待策略。查看 parkNanos 本身的 JavaDoc,我看到这条评论“可以虚假返回..”,这让我想知道 awaitDone() 是否正在旋转并进而导致 CPU 过高。任何帮助将不胜感激!
scala - 为什么 Scala Futures 一次只运行 2 个?
我正在尝试使用 Scala Futures 同时运行 50 多个任务。不幸的是,虽然我只让他们一次运行 2 个。有人能告诉我我做错了什么或如何增加并行度吗?
我得到的结果是
为什么我没有得到以下信息?
java - 未来任务完成后 Java 进程没有退出
这是我使用 Future 的代码片段。
输出:
提交所有未来任务后,我得到了结果,但程序仍然没有退出。我的光标在闪烁,直到我单击CTRL+C才退出 java 进程。问题是什么?
编辑:除非服务器关闭触发关闭挂钩,否则我无法关闭执行程序服务。
python - 如何在 Python3 中检测 concurrent.futures 中的异常?
由于它的并发期货模块,我刚刚转向 python3。我想知道是否可以让它检测错误。我想使用并发期货来并行程序,如果有更高效的模块请告诉我。
我不喜欢多处理,因为它太复杂而且没有太多文档。但是,如果有人可以编写一个没有类的 Hello World,只有使用多处理并行计算的函数,这样它就很容易理解了,那就太好了。
这是一个简单的脚本:
上面的代码只是一个演示,说明 CTRL+C 无法打印语句。
我想要的是能够调用函数是存在错误。这种错误检测必须来自函数本身。
另一个例子
python - python中蛮力的并行计算任务
/* 这并不是因为我的学校只使用 7 个整数而造成的任何非法行为,我想看看我是否能及时让它工作,因为目前我需要 1.59 年才能破解密码。学校在现场为任何相关人员提供自己的私人服务器,并且很容易检测到。我只会在他们允许的情况下对我或我的朋友这样做。*/
我只是想使用多处理或 concurrent.futures 使这个密码破解程序在合理的时间内运行。
这是我尝试将其并行化
这实际上只有当密码在第一行时才有效,它只输出我在那里写的指标,就像print ("Got to here3")
它不打印破解密码甚至将其写入文本文件一样。
multithreading - 在 FutureTask 中包装 Callable/Runnable 有什么好处?
FutureTask 包装器在简单的 Callable/Runnables 上提供了什么?我见过一些人以这种方式使用期货,但我不确定它真正为游戏增加了什么。
python - 为什么使用 concurrent.futures 而不是多处理池?
我无法理解为什么要使用concurrent.futures模块。ProcessPoolExecutor似乎可以与进程的多处理池相媲美,同样适用于ThreadPoolExecutor与线程的multiprocessing.dummy模块(甚至是未记录的multiprocessing.pool.ThreadPool)。
例如,如果我想同时映射一些函数调用并返回一个迭代器,我可以像这样使用多处理:
或者我可以将 concurrent.futures 与 ProcessPoolExecutor 一起使用,如下所示:
似乎 concurrent.futures 提供了在异步调用完成之前取消它们的能力,但是多处理池提供了更多可以根据您的需要进行选择和定制的方法,这使得它更加灵活(据我所知)告诉)增加了很多复杂性。
我已经阅读了有关 concurrent.futures 模块的一些资源:http:
//www.developer.com/lang/other/using-the-new-python-32-concurrent-programming-features.html
http:// eli.thegreenplace.net/2013/01/16/python-paralellizing-cpu-bound-tasks-with-concurrent-futures
https://gist.github.com/mangecoeur/9540178
但是我仍然看不到我可以从中获得什么,而我还没有从进程或线程池中获得什么。这个新模块有什么优势,我什么时候应该在现有池上使用它?