简单易懂的进程与线程详解
2022/4/17 7:17:19
本文主要是介绍简单易懂的进程与线程详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
进程与线程详解
本博客分以下几个部分来阐述进程与线程
1、进程的概念很抽象?那么什么是进程呢?
2、开启一个进程,操作系统会做哪些工作?
3、既然进程也可以使多个程序能并发执行,为什么还需要线程?
4、进程与线程有哪些联系呢?
什么是进程?
- 进程是计算机程序从启动到结束的过程。
- 那么什么是计算机程序呢? 我们常见的QQ、微信、英雄联盟这些软件都是一个计算机程序,(可以说我们从打开QQ到关闭QQ就是一段进程)。
不难理解,这些计算机程序是由代码,以及图片、音频、jar包等必要的资源文件组成的。
开启一个进程,操作系统会做哪些工作呢?
- ①进程的ID号。当操作系统收到我们要打开QQ进程的时候,操作系统会给QQ进程一个ID号,我们可以通过任务管理器窗口看到该进程ID
- ②申请内存空间。每个进程拥有独立的地址空间。
既然进程也可以使多个程序能并发执行,为什么还需要线程?
从用户使用的角度来看
- 进程的并发解决了哪些问题呢?
- 多应用同时进行,在QQ音乐听歌的同时 还可以刷QQ空间。
- 应用分身,这允许我们同时登录好多人的QQ号。
- 如果我们QQ进程中只有一个线程,会发生什么呢?
- 单线程的进程是完全顺序结构,只能在同一时间做一件事情。比如我们在使用QQ进行文件传输的时候,就无法和好友发消息 闲聊了。
从上下文状态切换的角度来看
- 进程的单位比较大,创建/销毁、进行上下文切换比较浪费资源
- 线程的单位比较小,创建/销毁、上下文切换不太浪费资源
- 所以,需要频繁创建销毁时,要考虑线程 。在需要大量计算、切换频繁时 使用线程可以提高程序的响应速度 。
线程的引入优点很多,又有哪些问题呢?
- 开发更加麻烦。
- 线程可以共享一个进程的资源,所以共享的数据要保证安全。
- 线程的执行顺序,也需要保证,比如我们要给QQ好友发送一张图片,这篇文章传输过程中可能被分成了很多份小的
数据包来发送,这个时候QQ好友接收数据包的顺序不能乱。
进程与线程有哪些联系呢?
- 一个进程之中可以包含多个线程
- 线程可以共享一个进程的资源
这篇关于简单易懂的进程与线程详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门