问题标签 [executor]
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.
grails - Grails Executor 插件出错,找不到 bean“persistenceInterceptor”
我在我的 Grails 应用程序中安装了“executor”插件来做一些简单的异步处理;我没有使用 Hibernate 或任何花哨的持久性。根据插件的文档,可以在这里找到https://github.com/basejump/grails-executor,设置非常简单,只需添加以下内容resources.groovy
,我应该很好......
我还没有尝试在我的代码中使用任何异步构造,但是当我启动我的 grails 应用程序时,我看到以下错误......
该错误是有道理的,因为我没有连接任何名为persistenceInterceptor
in 的bean resources.groovy
,但根据插件文档,我不必这样做。我是否必须编写一个实现 PersistenceContextInterceptor 接口的 groovy 类,并将其连接为“persistenceInterceptor”bean?在文档的设置部分中,没有提到这一点..
java - 没有xml配置的Spring @Async
25.5.3 元素
要同时启用@Scheduled 和@Async 注释,只需在配置中包含任务命名空间中的“注释驱动”元素。
请注意,提供了执行器引用来处理与带有@Async 注释的方法相对应的那些任务,并且提供了调度器引用来管理那些带有@Scheduled 注释的方法。
没有 XML 有没有办法做到这一点?
java - 如何在 ThreadPoolExecutor 中保持核心线程存活并消除多余线程?keepAliveTime 没有按预期工作
我使用 ThreadPoolExecutor 来管理线程池。我们想要的是:
- 如果池中的线程少于 corePoolSize,则为新任务启动一个新线程;
- 如果池中有多个 corePoolSize 线程并且所有线程都很忙,则为新任务启动一个新线程,直到达到 maxPoolSize。在这种情况下,拒绝任务;
- 保持 corePoolSize 个线程存活,即使它们处于空闲状态,如果它们空闲超过 keepAliveTime,多余的线程将死亡
根据 Java6 文档,keepAliveTime 应该像上面那样工作。但是在我的测试代码中,它并不能始终如一地工作。
当我将 keepAliveTime 设置为 0 时,它工作正常,始终保持核心线程处于活动状态并在完成时终止多余的线程;
但是,如下所示,当我将 keepAliveTime 设置为正值时,似乎它终止了所有空闲线程,无论它们是否是核心线程。
对keepAliveTime或getPoolSize有什么误解吗?如果 getPoolSize 不是正确的 API,我如何才能知道“活动”线程(空闲或忙碌)的数量?
提前致谢。
android - Executor 的 Runnable 中的变量
假设我有一个 Runnable,它执行一个简单的文件写入操作,并且这个 Runnable 被一个执行程序调用。
executor 是一个单线程的 Executor 类。
_data 的直接内容是否在调用 execute() 时被保存?这意味着一旦runnable被提交到队列中,我可以继续对_data进行更改,并且更改不会写入文件?
有没有机会我最终会做 file.write(别的)?
java - ExecutorService 仅运行最近添加的 Callable
我有一个单线程执行器服务,用于通过网络获取一些数据。
当用户在搜索框中输入时,我正在排队可能的网络任务。我想要的是取消所有以前的请求,只排队并立即运行最新的请求。
我目前的方法是在调用 super 之前覆盖 execute() 和 submit() 方法并清除队列。
对此有什么想法吗?
java - java 执行器的默认执行策略
什么是默认执行策略Executors.newSingleThreadExecutor()
?
这有记录吗?
我需要保证先进先出。
java - 我应该在 Future或我自己的 FutureTask上调用 cancel(true)
我有一个自定义类,我在该类上对方法MyFutureTask extends FutureTask<Void>
执行了一些代码。done()
我使用了一个调用submit(new MyFutureTask())
它的 ExecutorService。
现在我可以保留对调用提交后返回的引用Future<?>
,但是当我调用取消时,该isCancelled()
方法永远不会返回 true。
我应该忽略Future<?>
返回的对象,而是使用MyFutureTask
并调用cancel(true)
它吗?
那么Future<?>
对象有什么用呢?
编辑:Java 中的 Future 和 FutureTask 有什么区别?从这个线程我明白了区别。
除了默认的取消行为,我还想尝试停止正在进行的网络调用,所以我想我将使用 FutureTask 的路由是正确的。有人可以确认吗?
java - Java 并发实战:BoundedExecutor 实现
这是 Java Concurrency in Practice 一书中 BoundedExecutor 类的实现:
是否有原因导致 RejectedExecutionException 被捕获而不是让它进一步传播?在这种情况下,如果任务被拒绝,那么提交任务的人就不会更聪明了。
用 finally 块替换 catch 块不是更好吗?
这是我接受 Callable 而不是 Runnable 的 BoundedExecutor 的实现:
这是一个正确的实现吗?
谢谢!
java - ExecutorService invokeAll() 重复 Callable 被调用
尝试从fixedThreadPool
. 虽然所有可调用对象都将执行,但其中一些似乎同时被分派到不同的线程,因此实际上它们被多次调用。请看下面的代码:
java - Difference between multithreading with and without Executor
I am trying to find out about the performance difference between normal multithreading and multithreading using executor (to maintain a thread pool).
The below are code examples for both.
Without Executor Code (with multithreading):
With executor (multithreading):
Sample output
When I run both programs, it turns out the executor is more expensive than normal multithreading. why is this so?
And given this, what is the use of executor exactly? We use the executor to manage thread pools.
I would have expected the executor to give better results than normal multithreading.
Basically I'm doing this as I need to handle millions of clients using socket programming with multithreading.
Any suggestions will be helpful.