一:在了解 java 线程之前,大致复习一下进程。
操作系统中最核心的概念就是进程,即使可以利用的 CPU 只有一个,但是他们也支 持(伪)并发操作的能力,可以讲一个单独的 CPU 变换成多个虚拟的 CPU。
在现在程序设计中,CPU 由一个进程快速切换到另一个进程,使每个进程各运行几十或几百个毫秒,严格来说,在某一瞬间,CPU 只能运行一个进程。但在一秒钟期间,他可以运行多个进程,这样就产生并行的错觉,但是多处理器系统可以实现真正的硬件并行。
二:线程
每个进程都有一个地址空间和一个控制线程。
产生原因:线程比进程更轻量级,所以它们比进程更容易创建,也更容易撤销,创建一个线程比一个进程要快10~100倍。而且线程可以共享所有可用数据。
三:并发级别
1:阻塞,如果一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法执行,当我们使用 Synchronized关键字或者重入锁,都会试图在执行后续代码前,得到临界区的锁,如果得不到就会被挂起.
2:无饥饿.
3:无障碍.
4:无锁.