可以同时在多个线程上运行一个主要方法吗?

时间:2018-07-05 14:50:32

标签: java multithreading

我是SO / Java软件开发的新手,我一直在寻找这个东西,但没有多大用处。

我的问题是-在Java中-是否可以一次在多个线程中运行一条主语句?我正在编写本机Java应用程序以对服务器进行负载测试。此过程是让一堆线程同时运行以模拟用户。这些线程从某个文件读取,获取各种UID,操纵一些标准数据,并将其发送到服务器上的队列。线程发送数据后,我们开始从响应队列中提取数据,并且已经发送数据的每个线程都开始根据新返回的数据的UID进行检查,如果匹配,则流程输出往返时间并终止。

从算法角度讲,这就是我计划实现的方法,但是我并没有太多关于并发和使用多个线程的经验,因此我不确定如何使线程能够运行此过程。我看过其他使用数组WorkerThreads的工作,并且阅读了Threads API并阅读了有关并发性的各种教程。任何指导都会有所帮助。 谢谢!

1 个答案:

答案 0 :(得分:3)

实现并发工作程序的推荐方法是使用执行程序服务。模式是这样的:

  ExecutorService pool = Executors.newFixedThreadPool(poolSize);
  ...


  while (...) {
      final int someParameter = ...
      pool.submit(new Runnable() {
              public void run() {
                  // do something using 'someParameter'
              }
      });
  }

这种方法解决了手动创建和管理线程池的复杂过程。

有很多变化;请参见ExecutorsExecutorService的javadocs。