Skip to content

Commit af60681

Browse files
committed
[docs update]添加问题: 如何创建线程?
1 parent 796b5b6 commit af60681

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

docs/java/concurrent/java-concurrent-questions-01.md

+10
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,16 @@ JDK 1.2 之前,Java 线程是基于绿色线程(Green Threads)实现的,
167167

168168
因此,对于单核 CPU 来说,如果任务是 CPU 密集型的,那么开很多线程会影响效率;如果任务是 IO 密集型的,那么开很多线程会提高效率。当然,这里的“很多”也要适度,不能超过系统能够承受的上限。
169169

170+
## 如何创建线程?
171+
172+
一般来说,创建线程有很多种方式,例如继承`Thread`类、实现`Runnable`接口、实现`Callable`接口、使用线程池、使用`CompletableFuture`类等等。
173+
174+
不过,这些方式其实并没有真正创建出线程。准确点来说,这些都属于是在 Java 代码中使用多线程的方法。
175+
176+
严格来说,Java 就只有一种方式可以创建线程,那就是通过`new Thread().start()`创建。不管是哪种方式,最终还是依赖于`new Thread().start()`
177+
178+
关于这个问题的详细分析可以查看这篇文章:[大家都说 Java 有三种创建线程的方式!并发编程中的惊天骗局!](https://mp.weixin.qq.com/s/NspUsyhEmKnJ-4OprRFp9g)
179+
170180
## 说说线程的生命周期和状态?
171181

172182
Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态:

0 commit comments

Comments
 (0)