Java并发编程艺术第四章有哪些核心概念?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1563个文字,预计阅读时间需要7分钟。
4.1.2 多线程的必要性一个线程在同一时刻只能在一个处理器核心上运行。如果程序使用多线程,那么它可以被分配到多个处理器核心上,从而减少程序的执行时间。
4.1.2
为什么要使用多线程?
一个线程在同一时刻只能运行在一个处理器核心上。如果程序使用多线程,那么程序就会被分配到多个处理器核心上,这样就会显著减少程序的处理时间,并且随着更多处理器核心的加入,程序的执行会变得更有效率。P84
耗时少,效率高。
4.1.3
线程会得到OS分配的若干时间片,当线程的时间片用完了就会发生线程调度,并等待着下次OS分配。
4.1.4
如何查看线程的状态?
jps ,我们运行的Java类的名字是ThreadState。所以JPS可以看到我的Java代码的进程ID为3068,
jstack 3068 查看进程的中的所有线程信息。
如下图可以发现,线程名为"BolckedThreadB"的线程的状态为 TIMED_WAITING ,说明此线程调用了 Thread.sleep()方法。
下图也显示了,名为BlockedThreadA的线程的状态,现在是BLOCKED状态。
本文共计1563个文字,预计阅读时间需要7分钟。
4.1.2 多线程的必要性一个线程在同一时刻只能在一个处理器核心上运行。如果程序使用多线程,那么它可以被分配到多个处理器核心上,从而减少程序的执行时间。
4.1.2
为什么要使用多线程?
一个线程在同一时刻只能运行在一个处理器核心上。如果程序使用多线程,那么程序就会被分配到多个处理器核心上,这样就会显著减少程序的处理时间,并且随着更多处理器核心的加入,程序的执行会变得更有效率。P84
耗时少,效率高。
4.1.3
线程会得到OS分配的若干时间片,当线程的时间片用完了就会发生线程调度,并等待着下次OS分配。
4.1.4
如何查看线程的状态?
jps ,我们运行的Java类的名字是ThreadState。所以JPS可以看到我的Java代码的进程ID为3068,
jstack 3068 查看进程的中的所有线程信息。
如下图可以发现,线程名为"BolckedThreadB"的线程的状态为 TIMED_WAITING ,说明此线程调用了 Thread.sleep()方法。
下图也显示了,名为BlockedThreadA的线程的状态,现在是BLOCKED状态。

