操作系统的线程和进程的区别_面试官:你熟悉多线程嘛?线程跟进程有什么区别?...

这篇文章跟大家聊聊线程,讲到线程,⼜不得不提进程了~

进程我们估计是很了解的了,在windows下打开任务管理器,可以发现我们在操作系统上运⾏的程序都是进程。

什么是叫一个进程? 什么叫一个线程?

进程:做一个简单的解释,你的硬盘上有一个简单的程序,这个程序叫QQ.exe,这是一个程序,这个程序是一个静态的概念,它被扔在硬盘上也没人理他,但是当你双击它,弹出一个界面输入账号密码登录进去了,OK,这个时候叫做一个进程。进程相对于程序来说它是一个动态的概念

线程:作为一个进程里面最小的执行单元它就叫一个线程,用简单的话讲一个程序里不同的执行路径就叫做一个线程

掌握多线程的重要性

程序的运行必须依靠进程,进程的实际执行单元就是线程。而多线程可以提高程序的执行性能。例如,有个 90 平方的房子,一个人打扫需要花费 30 分钟,三个人打扫就只需要 10 分钟,这三个人就是程序中的“多线程”。在现阶段的面试中,多线程几乎是面试必问的,而很多面试者并不熟悉多线程,一般就是面试前刷一些题,并不是太了解底层原理。可以说在简历上如果能写上熟练掌握多线程,那么涨点薪还是不成问题的。

下面我为各位老哥介绍一份我一直在用的多线程学习笔记,对我帮助挺大的,希望也能对大家也有点帮助,无论是进阶路上,还是面试环节。

这份笔记一共有11部分

一、什么是多线程

7052d0c51af8be5665c9003184243f45.png
fd12ca76238de8243c0929ffc762335d.png

二、Thread类解析

c06b34d0c6b32ceaec96144cdd248523.png
fd2d3cafd61bf6ed0d9aecbd67c6e157.png

三、使用多线程需要注意的问题

a0453b9f1373a9ab2e86058042ffd0aa.png
4f8d5cece9ade2315335656177845c8e.png

四、synchronized锁和lock锁

f03265714d9f3d45cd2ea36b6a9b99f0.png
82fe5b0e206059b4ebfa21f65784b80b.png
d0e85de263da0e03676e0304a65360d1.png

如有需要这份京东T9纯手打多线程笔记的老哥,帮忙点赞评论加转发(让更多有需要的老哥看到),然后关注小编支持一下,私信【666】即可得到获取方式!

五、AQS

973cfe5548c2733b9f281c5ab83e0cdd.png
480b4f41193f7ab1b9677a7a453361df.png

六、ReentrantLock和ReentrantReadWriteLock

eb42ee1e293871aaead1233e4b3dceb6.png
f4f19e5c5288189d356d1c9d4d1f043b.png

七、线程池

93dd23d664064fdb9e26480f77484caf.png
460580d9e1a42cc826d94899662d8769.png

八、死锁

80723016eb742a97949e33798e98c24a.png
bf8f6c9286a6d9c252c9ac8757a74d62.png
463ae76d64b106fb0bca20f9e9e46a74.png

九、线程常用的工具类

3b1feedbc76ff122e8223c2677fc7a4d.png
950ffd090f83132462697e7386d66035.png

十、Atomic

1011a90a7756a88ad8fd624b0a9cc964.png
791d6db3b4c853795e5add45b0a6a385.png

十一、ThreadLocal

fea9e38a34dc6da26ba111d240dae957.png
17ac402c821884999c4e2a8477dd17c8.png
  • 最后

进程实现多处理机环境下的进程调度,分派,切换时,都需要花费较⼤的时间和空间开销,引⼊线程主要是为了提⾼系统的执⾏效率,减少处理机的空转时间和调度切换的时间,以及便于系统管理。使OS具有更好的并发性。所以,掌握多线程这项技术会很吃香的。

如有需要这份京东T9纯手打多线程笔记的老哥,帮忙点赞评论加转发(让更多有需要的老哥看到),然后关注小编支持一下,私信【666】即可得到获取方式!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以OpenCV为例配置VS第三方库

正常情况下,你拿到的别人的第三方动态库(静态库调用方式这里不讲,有另外一篇文章)至少应该包含下面三种文件: 1. 头文件,这个一般放在include这样字眼的文件夹下,比如OpenCV的:然后i…

光纤接口怎么接 图解_光纤的数据比网线快很多倍,但为什么没有在家庭局域网中普及呢?...

光纤的数据吞吐量比网线大很多,速度也更快,网络光纤入户已经普及,但是家庭内组网却没有普及,大部分家庭组网还是网线较多。分析起来主要的原因有:光纤线的价格和网线差不多,但是因为光纤所使用的专用的光接…

项目Alpha冲刺--1/10

项目Alpha冲刺--1/10作业要求 这个作业属于哪个课程软件工程1916-W(福州大学)这个作业要求在哪里项目Alpha冲刺团队名称基于云的胜利冲锋队项目名称云评:高校学生成绩综合评估及可视化分析平台这个作业的目标团队的代码规范、本次冲刺任务与计划其他参考文献1.邹欣.…

Java连接postgresql数据库

1.下载驱动jar 下载地址:https://jdbc.postgresql.org/download.html 2.导入jar包 新建lib文件夹,将下载的jar驱动包拖到文件夹中。 将jar驱动包添加到Libraries 3.程序代码如下:HelloWorld.java package test; import java.sql.Connecti…

jvm默认的初始化参数_您是否应该信任JVM中的默认设置?

jvm默认的初始化参数如今,JVM被认为是智能的。 预期配置不多-只需设置要在启动脚本中使用的最大堆,您就可以进行了。 所有其他默认设置都很好。 大概我们当中有些人误以为。 实际上,在运行时期间发生了很多事情,无法自动调整性能&…

setGeometry

setGeometry (9,9, 50, 25) 从屏幕上(9,9)位置开始(即为最左上角的点),显示一个50*25的界面(宽50,高25) 如果在控件中加上了layout布局,就会发现发现没有办法…

python如何输出两行_python pandas dataframe拆分行(某些行一行拆成多行)

简单循环 最简单的方式就是循环拆分一下呗。先上最简单方法:import pandas as pd df pd.DataFrame({A:[1,2,3],B:[1,2,3,4,5,6],C:[3,3,3]}) result pd.DataFrame(columns[A,B,C]) print(df,\n)for i in df.itertuples(): for j in i[2].split(,): result result…

Oracle启动操作

转自:https://www.cnblogs.com/mellowsmile/p/4610942.html 1、启动oracle数据库: 从root切换到oracle用户进入:su - oracle 进入sqlplus环境,nolog参数表示不登录:sqlplus /nolog 以管理员模式登录:sqlplu…

在JPA中处理Java的LocalDateTime

几天前,我在处理JPA中的LocalDateTime属性时遇到问题。 在这篇博客文章中,我将尝试创建一个示例问题来说明该问题以及我使用的解决方案。 考虑以下实体,该实体为特定公司的员工建模– Entity Getter Setter public class Employee {IdGener…

Junit4 简单教程

一、环境搭建 对于习惯使用Eclipse开发平台来说,Junit早已是非常通常的插件,在Eclipse开发平台中,可以非常方便地搭建Junit测试环境。 1、在Eclipse上创建工程,任何Java工程都行。 2、引入Junit的libraries库,选用Juni…

Qt显示中文的方法

QT 显示中文的三种方法 最近在用Qt做项目,遇到UI不能显示中文的问题,发现有3种方法可以解决,先记录一下 方法一 QString::fromLocal8Bit("你好中国")1 方法二 QStringLiteral("你好中国")1 方法三 在.…

python中exception类的_面试题 | 列举几个Python中的标准异常类?

【摘要】今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给…

jsonp和CORS跨域实现

一、jsonp&#xff0c;使用jquery封装的$.ajax&#xff0c;返回数据类型要设置为jsonp 示例&#xff1a; $.ajax({type: get,contentType: "application/json; charsetutf-8",url: "http://localhost:8080/aqi/getCityList.php",dataType: jsonp,< /spa…

Qt数字与字符串之间的相互转换

把QString转换为 double类型方法1.QString str"123.45";double valstr.toDouble(); //val123.45方法2.很适合科学计数法形式转换bool ok;double d;dQString("1234.56e-02").toDouble(&ok); //oktrue;d;12.3456.把QString转换为float形1.QString str&qu…

无线ap软件_无线WIFI网络干扰优化,不懂必看!新手在家里也能用的网络知识

由于国家频谱资源分配中保留一些频段用于工业、科研、医疗等方面应用&#xff0c;即ISM频段&#xff0c;如2.400到2.483G和5.170到5.825G。使用这些频段都无需许可证&#xff0c;只需要遵守一定的发射功率任何厂家都可以使用&#xff0c;WLAN也采用ISM频段。随着WLAN技术在企业…

postgresql 比较两个时间差大于 N个小时

摘要: PG 中时间想减后为interval &#xff0c;比较两个时间大于某个小时或者分钟等可以直接通过interval来实现 example1&#xff1a; -- 判断两个时间差大于4个小时 select timestamp 2013-11-11 10:00:00 - timestamp 2013-11-08 12:00:00 > interval 4 hour; examp…

spring mvc重定向_Spring的Web MVC –重定向到内存泄漏

spring mvc重定向他们说一块岩石会引起雪崩。 最近&#xff0c;我的一位同事Marcin Radoszewski给了我一块岩石。 您可能永远不会猜到它是什么&#xff0c;但是有机会在许多Web应用程序中使用它。 请允许我向您介绍这块石头。 您可能很清楚发布模式后的重定向 。 使用Spring F…

关闭8080端口

转载于:https://www.cnblogs.com/Health-zhang/p/10775034.html

Qt 布局(水平、垂直、网格)

开发一个图形界面应用程序&#xff0c;界面的布局影响到界面的美观。在设计一个界面之前&#xff0c;应该考虑到开发的界面可能给不用的用户使用&#xff0c;而用户的屏幕大小、纵横比例、分辨率可能不同&#xff0c;界面还可能是可缩放的&#xff0c;程序应该可以适应这些变化…

JSR 365更新:深入CDI 2.0

上下文和依赖注入2.0&#xff08; JSR 365 &#xff09;是CDI 1.2的更新&#xff0c;CDI 1.2目前是Java EE 7平台的一部分。 目前处于公开审查阶段 。 对于不熟悉CDI的那些人&#xff0c;它定义了一组功能强大的免费服务&#xff0c;这些服务可充当凝胶&#xff0c;帮助改善应用…