一、Java设计之初——支持多线程
1,Java在服务端开发语言中的地位——常年高居前三
服务端开发经常会用到多线程,所以Java和多线程密不可分。
2,Java的多线程会一一映射到操作系统的内核线程,有些语言是虚拟线程,它不会在操作系统对应地去创建一个线程。
二、我们刚才启动的线程是200个,为什么在活动监视器中看到了两百多个。
因为JVM自动启动线程
/**
* 即使在代码中我们不显示地创建线程,在运行main()的时候,
* JVM也会自动帮我们创建一些其他的线程,并且这些线程都是有特殊的含义和作用的。
*/
public class JavaAndThreads {
public static void main(String[] args) {
System.out.println("Hello Threads");
}
}
image.png
除了main线程,JVM还帮我们创建的线程有Finalizer,Reference Handler,Single Dispatcher。
JVM创建这些线程的作用:
1,Single Dispatcher:会将操作系统发过来的信号分发给适当的应用程序,它是用来连接操作系统和应用程序的。
2,Finalizer:在每个对象结束的时候可能会实现finalizer(),但是随着Java语言的发展,finalizer()已经不再推荐使用。
3,Reference Handler:和GC,引用相关的线程。它会将每个对象的引用记录在案,然后配合垃圾回收。
4,main:主线程,用户程序的入口。
网友评论