进程和线程的概念是操作系统的概念,因此你可能需要看看大学有关《操作系统原理》这本书中的内容才能理解什么是进程和线程。
简单来说进程和线程涉及到 CPU 的使用和内存的分配。
可以想象下你的浏览器,如果你打开了一个浏览器,表示你启动了一个进程,如果你再打开多个标签页,表示你启动了不同的线程(敲黑板:浏览器启动不同的标签页,其实启动的是不同的进程,不是启动线程,但这个模式比较容易理解罢了)。
Java 是多线程,就意味着在 JVM 中可以为不同的计算启动不同的线程,来加快处理速度。
类比浏览器的例子,你打开一个网页,等了一段时间,觉得载入太慢了,你去打开了另外的网页了。
只要涉及到线程就会有内存共享问题,如果有内存共享问题就会有线程安全和线程同步的问题。
既然有线程安全和同步的问题,如何理解和解决?
这些问题就是为什么在面试的时候老被问到的原因。