1.什么是进程?什么是线程?
——进程是一个应用程序。(一个软件)
线程是一个进程中的执行场景/执行单元。
一个进程可以启动多个线程。
2.对于java程序来说,当DOS命令窗口中输入:
java HelloWorld 回车之后。
会先启动JVM,而JVM就是一个进程。
JVM再启动一个垃圾回收线程负责看护,回收垃圾。
最起码,现在的java程序中至少有两个线程并发。
一个是垃圾回收线程,一个是执行main方法的主线程。
3.进程和线程是什么关系?举个例子
阿里巴巴:进程
马云:就是一个线程
前台:线程
注意:
进程A和进程B的内存独立不共享。
线程A和线程B,堆内存和方法区内存共享。
但是栈内存独立,一个线程一个栈。
并发
假设启动10个线程,会有10个栈空间,每个栈和栈之间,互不干扰,各自执行各自的,这就是多线程并发
java中之所以有多线程机制,目的就是为了提高程序的处理效率。
4.使用多线程机制之后,main方法结束,是不是有可能程序也不会结束。main方法结束只是主线程结束了,主栈空了,其他栈(线程)可能还会压栈弹栈。
JVMJava虚拟机是一个进程
对于单核的CPU,真的能做到多线程并发吗?什么是真正的多线程并发?
t1线程执行t1的。
t2线程执行t2的。
浙公网安备 33010602011771号