在我的应用程序中,我有一组插件 - 在应用程序中发生某些事件时执行一些小操作的类。插件的每个方法都必须在单独的线程中调用,但每个插件只能同时运行一个方法。我们应该使用自己的线程还是线程池来处理小而频繁的任务?
我可以实现这个使用两种方法:
为每个插件将处理来自插件的队列中的事件,直到队列为空创建一个线程。然后睡觉,直到新事件排队,处理它等等。
当事件来到插件的队列时,它在线程池线程中进行处理。当队列变空时,将其释放回线程池。
问题是:这两种方式的优缺点是什么?
一些澄清:
- 插件不加载CPU太多,大部分时间他们只是等待下一个事件。
- 我不在乎创建线程所需的时间,插件是长期生活的。
- 通常我有〜10-20个这样的插件,每个应用程序。
“尽管每个插件只能同时运行一种方法” - 您是否认为对于给定的插件,您不能同时调用两种方法?但是,如果你有单独的插件,你可以同时在这些不同的插件上执行方法? – RandomEngy 2012-03-08 22:41:14
是的,正是...... – 2012-03-09 21:30:42