【问题标题】:Thread in RoundRobin methodRoundRobin 方法中的线程
【发布时间】:2011-09-25 05:40:24
【问题描述】:

这是一个示例代码,如果线程大小为 3 则表示正常。我可以在哪里管理内存。如果线程大小为 50,则问题出在此处。我需要将线程大小设置为 5。完成的线程应该被其他人重用

Thread[] TCreate = new Thread[iThreadSize]; 
for (int i = 0; i< TCreate.length; i++) {

    TCreate[i] = new Thread(new Runnable() {
        public void run() {
            lst.Add(this.getResult(url));
        }
    });
    TCreate[i].setName("URL"+i);
    TCreate[i].start(); }

for (int j = 0; j < TCreate.length; j++)
    while (TCreate[j].isAlive())
         Thread.sleep(10);

任何人都可以帮助 setDaemon() 方法的用途。守护进程的目的是什么 请帮助我..提前谢谢

【问题讨论】:

  • 要格式化代码,请使用编辑器中的{} 按钮,而不是引用按钮。我帮你修好了

标签: java multithreading thread-safety threadpool


【解决方案1】:

Java 已经包含管理线程池的方法。

调用Executors.newFixedThreadPool(5) 将为您生成一个包含5 个工作线程的线程池。

之后,您可以只分配将由池中的一个线程执行的 Runnables。

另见:

【讨论】:

    【解决方案2】:

    setDaemon 控制线程是否为守护线程。如果程序到达 main 方法的末尾时守护线程仍在运行,它不会阻止程序退出。非守护线程(用户线程)会阻止程序退出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2019-07-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多