1、多线程:
什么是进程? 什么是线程?
进程是一个应用程序。(1个进程是一个软件)
线程是一个进程中的执行场景/执行单元。
1个进程可以启动多个线程。
2、对于java程序来说,当在DOS命令窗口中输入:
java HelloWorld 回车之后。
会先启动JVM,而JVM就是一个进程。
JVM再启动一个主线程调用main方法。
同时再启动一个垃圾回收线程负责看护,回收垃圾。
最起码,现在的java程序中至少有两个线程并发。
一个是垃圾回收线程,一个是执行main方法的主线程。
3、进程和线程是什么关系?举个例子
阿里巴巴:进程
马云:阿里巴巴的一个线程
童文红:阿里巴巴的一个线程
京东:进程
强东:京东的一个线程。
妹妹:京东的一个线程
进程可以看作是现实生活当中的公司。
线程可以看作是公司当中的某个员工。
注意:进程A和进程B的内存独立不共享。(阿里巴巴和京东资源不会共享的!)
线程A和线程B呢?
在java语言中:线程A和线程B,堆内存和方法区内存共享。
但是栈内存独立,一个线程一个栈。
假设启动10个线程,会有10个栈空间,每个栈和每个栈之间互不干扰,各自执行各的,这就是多线程并发。
多线程并发可以提高效率。
java中之所以有多线程机制,目的就是为了提高程序的执行效率。
4、使用了多线程机制之后,main方法结束,是不是有可能程序也不会结束。
main方法结束只是主线程结束了,主栈空了,其它的栈(线程)可能还在压栈弹栈。
5、分析一个问题:对于单核的CPU来说,真的可以做到真正的多线程并发吗?
对于多核的CPU电脑来说,真正的多线程并发是没问题的。
4核CPU表示同一时间点上,可以真正的有4个进程并发执行。
什么是真正的?多线程并发
t1线程执行t1的。
t2线程执行t2的。
t1不会影响t2,t2也不会影响t1,这叫做真正的多线程并发。
单核的CPU表示只有一个大脑:
不能够做到真正的多线程并发,但是可以做到给人一种"多线程并发"的感觉。
对于单核的CPU来说,在某一个时间点上实际上只能处理一件事情,但是由于CPU的处理速度极快,多个线程之间频繁切换执行,给人的感觉是:多个事情同时在做!!



