问题标签 [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.
asynchronous - 线程如何处理 Futures
我经常在 Web 域中听到术语异步或非阻塞操作。通常他们说,通过将耗时的操作封装为带有回调的 Futures,线程不会阻塞,而是在回调返回时得到通知。
调用 Future 对象的操作并在回调返回时收到通知如何在 Web 应用程序上下文的后台工作?
谢谢!
java - 在 Futures.transform 中,使用 Function 和 AsyncFunction 有什么区别
我知道Function的apply方法同步返回一个对象,AsyncFunction的apply异步运行,返回一个Future。
你能给我一个什么时候喜欢什么的例子吗?
我看到的一个代码片段看起来像这样:
既然 AsyncFunction 内部的值作为立即结果返回,为什么这里需要 AsyncFunction 呢?或者这只是我遇到的一个坏例子?
python - 在多个内核上运行 python 线程
我知道 Python 2.7 不允许在不同的内核上运行多个线程,您需要使用该multiprocessing
模块来实现某种程度的并发。我正在查看concurrent.futures
Python 3.4 中的模块。使用 a 是否ThreadPoolExecutor
允许您在不同的进程上运行不同的线程,还是仍然受 GIL 约束?如果没有,有没有办法使用 Python 3.4 在不同的处理器上运行线程?
对于我的用例,使用多个进程是绝对不可行的。
scala - Scala Futures:每个新创建的或映射的异常的默认错误处理程序
是否有可能始终使用默认的 onFailure 处理程序创建 Future{...} 块?(例如将堆栈跟踪写入控制台)?此处理程序还应自动附加到映射的期货(通过在已经具有默认故障处理程序的期货上调用 map 创建的新期货)
有关更多详细信息,另请参阅我的问题: Scala on Android with scala.concurrent.Future do not report exception on system err/out
如果有人在返回的未来不使用 onFailure 或类似的东西,我想要一个“最后的手段”异常记录代码。
python - python的多处理和concurrent.futures有什么区别?
在 python 中实现多处理的一种简单方法是
基于期货的替代实现是
两种选择基本上做同样的事情,但一个显着的区别是我们不必用通常的if __name__ == '__main__'
子句来保护代码。这是因为期货的实施解决了这个问题还是我们有不同的原因?
multiprocessing
更广泛地说,和之间有什么区别concurrent.futures
?什么时候优先于另一个?
编辑:我最初的假设是,守卫if __name__ == '__main__'
只对多处理是必需的,这是错误的。显然,Windows 上的两种实现都需要这种保护,而在 unix 系统上则不需要。
python - Python:从 Web 服务获取数据的并行异步调用中的效率问题
我正在编写一个 python 脚本来获取与特定 group_id 对应的主机列表。我将使用 Web 服务调用来获取相同的内容。主机数量可以在 10,000 台以内。现在,对于每个主机,我将从另一个 Web 服务获取一个名为 property 的值。
所以 group-id ----(ws1)-----10000s 个主机 --(ws2)----每个的属性
我正在使用 concurrent.futures,如下面的代码所示。但它似乎不是一个干净的设计,也不太可能很好地扩展。
- 使用 ProcessPoolExecuter 会有什么优势吗?
- 先获取所有主机(大约 40000 个)然后调用 ws 获取属性怎么样
- 还有其他改进此设计的建议吗?
python - Python 3.4 concurrent.futures.Executor 没有控制暂停和恢复线程
我正在使用 concurrent.future.ThredPoolExecutor 进行多线程处理,我正在执行一些 http 服务,我希望对线程的控制在服务器关闭时暂停执行,启动服务器然后恢复执行。
服务器关闭的触发器是,我正在检查某个文件是否在特定位置可用,然后我将不得不暂停执行。
因此 concurrent.futures.Executor.shutdown() 将向执行程序发出信号,表明它应该在当前挂起的期货完成执行时释放它正在使用的任何资源。
但是当我使用执行器的shutdown()方法时,它不会立即关闭线程,而是在完成整个执行后调用shutdown()。
事实上,我正在调用 shutdown() 方法,因为我在 concurren.future 中找不到暂停和恢复。因此,作为替代方案,一旦线程完成执行,我将从列表中删除 url。这样我就可以通过剩余的列表并调用相同的方法。
这是代码:
python - python中concurrent.futures的异步和requests-futures的异步有什么区别?
我用requests-futures异步抓取网页,而且我的机器是多核的,所以我也想同时抓取很多网站,然后我尝试使用concurrent.futures,好像concurrent.futures也提供了异步的方法,所以有什么区别concurrent.futures 的异步和 requests-futures 的异步之间?如果它们相同,意味着我可以弃用 requests-futures?
java - 为什么 java.util.concurrent.RunnableFuture 有一个 run() 方法?
当我浏览 JDK 7 时,我发现它java.util.concurrent.RunnableFuture<V>
有一个 run 方法。我想知道在接口中复制相同的运行方法签名的意义是什么,当它已经扩展时Runnable
。
python - Python 3 concurrent.futures:如何将失败的期货添加回 ThreadPoolExecutor?
我有一个要通过 concurrent.futures 的 ThreadPoolExecutor 下载的 url 列表,但可能有一些超时 url,我想在所有第一次尝试结束后重新下载它们。我不知道该怎么做,这是我的尝试,但因无休止的打印“time_out_again”而失败:
那么,有没有办法解决这个问题呢?