Java中的多线程应用程序?

时间:2009-11-21 20:02:57

标签: java multithreading

我几年没有使用Java线程所以我有一个关于多线程的非常基本的问题。我正在编写一个将被另一种语言(matlab)调用的java包。 Matlab能够实例化Java类并运行java代码。

我希望能够:

  1. 启动多线程
  2. 获取所有正在运行的主题的列表
  3. 按名称停止给定的主题
  4. 停止所有主题
  5. 我过去使用过Thread课程,但现在有没有更简单/更完整的课程?任何人都可以提供一个简单的演示或指向我关于这个主题的教程吗?

4 个答案:

答案 0 :(得分:4)

也许看一下Doug Lea的 Java并行编程:设计原则和模式<{3}}中的例子 关于线程的书和并发编程(但它不包括新的java.util.concurrent包)。

或者查看Brian Goetz,Tim Peierls,Joshua Bloch,Joseph Bowbeer,David Holmes,Doug Lea(这本书的梦之队)及其{{}中最新的 Java Concurrency in Practice 3}}。

答案 1 :(得分:3)

关于这个主题的Sun's own tutorial怎么样?

答案 2 :(得分:3)

Executor接口为管理和执行线程提供了许多有用的方法,我建议你看一下。还有一个Executors类提供不同的线程池选项,并且有一些很好的信息here

答案 3 :(得分:1)

警告:如果您需要能够(安全地)停止线程,则需要对它们进行编码,以便它们能够正确响应Thread.interrupt()。例如,计算密集型线程需要偶尔检查interrupted标志,并且需要使用允许阻塞调用中断的API来完成IO请求。这不简单......