hello 大家好,相信有很多学习java的小伙伴和以及工作的朋友们,本文呢主要讲多线程的概念和创建与启动,剩余的部分内容回尽快更新哈
前言
虽然说在实际工作当中,我们可能编写关于多线程的代码比较少,但是我们一定会是在一个多线程的环境下去研发,所以也就体现出了多线程的重要性,而且像大厂的面试也会经常问到,所以多线程一定是一门必修课
以下是本篇文章正文内容,有不充足的地方可以随时指出
一、多线程的基本概念
1.在了解线程之前我们先了解一下什么是进程?
比如打开我们win10的任务管理器,我们就可以看到一个很详细的系统进程列表,比如我们在java环境下启动JVM,其实启动了一个进程,像现代的操作系统都是支持多进程的,可以打开多个的应用程序。
2.为什么要有多进程?
单进程的缺点:只能做一件事,不能同时运行多个程序进行任务切换;
从某种意义上来讲,我们电脑的CPU是非常的强大的,例如:我们可以同时打开网易云,打开百度,打开idea这些常用软件,你是不是以为他是在同时运行?其实并不是,对于单核CPU来说它在某个时间点只能去运行一个进程,那为什么我们的电脑后台却可以运行不止一个程序?这其实就要归功于单核CPU的性能方面了,由于在CPU的作用下,将 “网易云” 和 “百度” 等后台应用之间频繁切换,你可以理解为帧率一张张图片联动起来而形成的视觉效果,让我们觉得后台的应用程序是同时运行的。
所以多进程的作用是为了提高CPU的使用率;
其次就是进程和进程之间内存是独立的;
3.什么是线程?
线程是进程的执行场景,一个进程中可以启动多个线程;
4.为什么要用多线程?
其实和多进程类似,多线程的作用是为了提高软件应用的使用率;
线程和线程之间共用堆内存和方法区内存,栈内存是独立的,也就有了:一个线程一个栈;
总结
这里对文章进行总结:
以上就是今天对多线程基本概念的一个梳理,明天会尽快更新多线程的后续内容,有不太模糊和不充分的地方还请大家指出,谢谢!