我需要知道除了扩展线程类或实现Runnable接口之外如何创建线程对象。
在我的一次采访中询问了这个问题。
由于
答案 0 :(得分:2)
java.util.concurrent.Executors.newThreadPool(1).submit(Callable)
将创建一个帖子。您提交的Callable实现将在该线程中运行,并返回Future。
答案 1 :(得分:1)
自从Java 1.5以来,你不应该手动创建线程,你应该使用高级并发工具(参见例如Effective Java项目68:首选执行程序和任务到线程)。
请参阅Executors page of the Oracle Concurrency trail或更好,请阅读Java Concurrency in Practice。
答案 2 :(得分:0)
如果没有创建Thread
类的实例,或者某个类的实例扩展Thread
,则无法创建Java线程...
...但这并不意味着您的代码必须创建新的Thread
实例。有各种库类可以代表您创建和使用线程(例如ThreadPoolExecutor
,java.util.stream
包等。)