在java中选择线程模型的正确步骤

时间:2013-04-06 18:04:28

标签: multithreading profiling threadpool

1)我正在研究我的问题的标题,这是我应该采取的正确路径/步骤,并为我的应用选择正确的线程模型。

2)我有一台Linux机器,其/ proc / cpuinfo文件给我以下信息 a)物理处理器的数量: - 2 b)cpucores的数量: - 6 c)虚拟处理器的数量:-24

我在同一台机器上运行了大约5个JVM进程(同一个应用程序)。每个进程有3个线程,一个轮询一个新事件(线程A),一个查询数据库(线程B,每个事件轮询大约20个查询),一个发布事件数据(线程C)。 1 LinkedBlockingQueue连接线程A和线程B,另一个连接线程B和线程C.

每个事件都独立于另一个。我想利用这个语句,因此想进入线程池,可以引入更多类型为线程B的线程,并且它们并行提取数据并将它们发送到线程C.

到目前为止我做了什么: -

1)没什么,我决定采用正确的策略。 2)我浏览了以下博客 http://codeidol.com/java/java-concurrency/Applying-Thread-Pools/Sizing-Thread-Pools/ 3)那里描述的公式要我计算N / C,等待时间与计算时间的比率。为此我决定远程使用Netbeans Profiler并分析线程活动和方法级别检测。 4)但是同样不能给我CPU使用率,所以我打算使用Visual VM的监视器选项卡来分析CPU使用率。 5)我知道线程扩展需要更多的累积堆栈内存。 6)任何时候数据库连接的数量可能不是问题,但我必须检查相同。

我是否走正确的道路?特别是我需要建议,因为有多个JVM进程,所以我在分析方面变得更加困惑?

由于

0 个答案:

没有答案
相关问题