进程与线程
# 进程与线程
# 概述
- 线程是资源执行的基本单位,而进程是程序的执行的基本单位
- 一个进程可以使用一个CPU,而线程则使用的是CPU中的核;因此单进程并不能完全利用多CPU,造成资源你浪费,而多进程才能真正利用多CPU的能力
- 对于Java而言,所有的Java程序都是在JVM中运行,每个JVM都是一个进程,因此每启动一个Java程序其实都启动了一个进程,Mian方法是进程内的主线程。
- 在Java中我们很少谈及多进程,但也可以通过以下两种方法实现。
- (1)使用Runtime的exec()方法
- (2)使用ProcessBuilder的start()方法
- 一般在Java编程中,我们一般考虑多线程的运用。
如下图所示,可以看到,该系统一共有2颗CPU,每个CPU有4个核心,每个物理核心又可以超线程变成两个虚拟的核心,因此理论上可以同时运行的最大线程数为:2 * 4 * 2 = 16. 因此一共多线程的程序,理论上最大的线程数可以设置为16.