进程:同一个操作系统中执行的一个子程序,包含了三部分:虚拟CPU、代码、数据。
多进程:同一个操作系统中执行的多个并行的子程序。可以提高CPU 的使用率。
线程:在同一个进程中执行的子程序流。
多线程:同一个进程中并发的多个子程序流。提高CPU 的使用率。
进程与线程的区别
进程有独立的进程空间,进程中的数据存放空间(堆空间、栈空间)是独立的。
线程的堆空间是共享的,栈空间 是独立的,线程消耗的资源也比线程小,相互之间可以影响的。
Java中如何调进程
调用本地程序的两个类:
Runtime
Runtime.getRuntime.exec(.......) //执行一个程序;
其返回值就是Proccess类型
注意:
- 只有运行中的线程才会运行代码,主线程的中止不会影响其他正在运行中的线程,主线程的中止也就是main()方法退出了。只有进程中的所有线程都中止时,进程(JVM 进程)才会退出,只要有线程没有中止,进程就不会退出。
- 操作系统决定线程是否具有优先级,独占式的操作系统会有优先级的概念,共享式的操作系统就不会有优先级的概念。
在线程内部,程序依然顺利执行。