一、多线程的基本概念:
线程指进程中的一个执行场景,也就是执行流程,那么进程和线程有什么区别呢?
1 每个进程是一个应用程序,都有独立的内存空间
2 同一个进程中的线程共享其进程中的内存和资源
( 共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的。)
1.什么是进程?
一个进程对应一个应用程序。 例如: 在windows操作系统启动 Word就表示启动了一个
进程。在 java 的开发环境下启动 JVM,就表示启动了一个进程。现代的计算机都是支持多
进程的,在同一个操作系统中,可以同时启动多个进程 。
2.多进程有什么作用?
单进程计算机只能做一件事情。
玩电脑,一边玩游戏(游戏进程)一边听音乐(音乐进程)。
对于单核计算机来讲,在同一个时间点上,游戏进程和音乐进程是同时在运行吗?不是。
因为计算机的 CPU只能在某个时间点上做一件事。由于计算机将在“ 游戏进程” 和“ 音乐
进程” 之间频繁的切换执行,切换速度极高,人类感觉游戏和音乐在同时进行。
多进程的作用不是提高执行速度,而是提高CPU的使用率。
进程和进程之间的内存是独立的 。
3.什么是线程?
线程是一个进程中的执行场景。一个进程可以启动多个线程。
4.多线程有什么作用?
多线程不是为了提高执行速度,而是提高应用程序的使用率。
线程和线程共享“ 堆内存和方法区内存”,栈内存是独立的, 一个线程一个栈。
可以给现实世界中的人类一种错觉:感觉多个线程在同时并发执行 。
5.java程序的运行原理?
java命令会启动 java虚拟机,启动 JVM,等于启动了一个应用程序,表示启动了一个
进程。 该进程会自动启动一个 “ 主线程”, 然后主线程去调用某个类的main 方法。 所以main
方法运行在主线程中。在此之前的所有程序都是单线程的 。