我是SO / Java软件开发的新手,我一直在寻找这个东西,但没有多大用处。
我的问题是-在Java中-是否可以一次在多个线程中运行一条主语句?我正在编写本机Java应用程序以对服务器进行负载测试。此过程是让一堆线程同时运行以模拟用户。这些线程从某个文件读取,获取各种UID,操纵一些标准数据,并将其发送到服务器上的队列。线程发送数据后,我们开始从响应队列中提取数据,并且已经发送数据的每个线程都开始根据新返回的数据的UID进行检查,如果匹配,则流程输出往返时间并终止。
从算法角度讲,这就是我计划实现的方法,但是我并没有太多关于并发和使用多个线程的经验,因此我不确定如何使线程能够运行此过程。我看过其他使用数组WorkerThreads的工作,并且阅读了Threads API并阅读了有关并发性的各种教程。任何指导都会有所帮助。 谢谢!
答案 0 :(得分:3)
实现并发工作程序的推荐方法是使用执行程序服务。模式是这样的:
ExecutorService pool = Executors.newFixedThreadPool(poolSize);
...
while (...) {
final int someParameter = ...
pool.submit(new Runnable() {
public void run() {
// do something using 'someParameter'
}
});
}
这种方法解决了手动创建和管理线程池的复杂过程。
有很多变化;请参见Executors
和ExecutorService
的javadocs。