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

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

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

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

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

掌握多线程的重要性

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

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

这份笔记一共有11部分

一、什么是多线程

二、Thread类解析

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

四、synchronized锁和lock锁

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

五、AQS

六、ReentrantLock和ReentrantReadWriteLock

七、线程池

八、死锁

九、线程常用的工具类

十、Atomic

十一、ThreadLocal

  • 最后

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

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

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

  1. java线程池原理简答_面试官让我讲讲Java线程池的实现原理,我笑了...

    期待与你,一起进步 随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力.所以,多线程技术是服务端开发人员必须掌握的技术. 线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就 ...

  2. 前端的请求最大线程数是多少啊_面试官:创建多少个线程合适,我该怎么说?...

    转载:https://mp.weixin.qq.com/s/j5d4Jtxo0RgJWgpnG9HxlQ 为什么要使用多线程? 防止并发编程出错最好的办法就是不写并发程序 既然多线程编程容易出错,为什 ...

  3. java 线程状态_面试官问:为什么Java线程没有Running状态?我懵了

    点击上方"占小狼的博客",选择"设为星标" 本文阅读时间大约4分钟. 来源:https://dwz.cn/dLRLBZab Java虚拟机层面所暴露给我们的状态 ...

  4. 如何把class里的vector结构体memcpy出来_面试官:请说出线程安全的 ArrayList 有哪些,除了Vector...

    以下环境是 JDK 1.8 ArrayList 的初始容量 面试官:你看过 ArrayList 的源码? Python 小星:看过 面试官:那你说下ArrayList 的初始容量是多少? Python ...

  5. arraylist 后往前遍历_面试官:请说出线程安全的 ArrayList 有哪些,除了Vector

    以下环境是 JDK 1.8 ArrayList 的初始容量 面试官:你看过 ArrayList 的源码? Python 小星:看过 面试官:那你说下ArrayList 的初始容量是多少? Python ...

  6. 为什么重新new两个线程线程号相同_面试官每次问我关于线程间通信方法,我都回答的很糟糕...

    线程的生命周期 废话不多写.首先我们先回顾回顾,理解下线程的生命周期,以及不同的阶段的区别: 新建状态(NEW) 当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时仅由JVM为其分配 ...

  7. mysql 钩子_面试官: 什么是 Hook (钩子) 线程以及应用场景?

    一.Hook 线程介绍 通常情况下,我们可以向应用程序注入一个或多个 Hook (钩子) 线程,这样,在程序即将退出的时候,也就是 JVM 程序即将退出的时候,Hook 线程就会被启动执行. 先看一段 ...

  8. hashmap为什么线程不安全_面试官:你说 HashMap 线程不安全,它为啥不安全呢?...

    扫描下方海报 试读 本文来源: http://cnblogs.com/developer_chan/p/10450908.html 我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但 ...

  9. aopaspect区别_面试官:什么是AOP?Spring AOP和AspectJ的区别是什么?

    AOP(Aspect Orient Programming),它是面向对象编程的一种补充,主要应用于处理一些具有横切性质的系统级服务,如日志收集.事务管理.安全检查.缓存.对象池管理等. AOP实现的 ...

最新文章

  1. pycharm使用Djiago创建第一个web项目
  2. 解决SqlTransaction用尽的问题
  3. CDN 内容分发网络 简介
  4. 两个矩阵相加 Exercise08_05
  5. 100多千克的柠檬电池车可以开吗?
  6. R语言可视化学习笔记之ggridges包绘制山峦图
  7. 关于J2EE项目中三层架构如何在开发中得到正确的实施
  8. html5自由者,排球自由人可以一直不下场吗?就是可不可以一直在后排轮换?
  9. 6999元!红魔6S Pro推出战地迷彩主题限定套装:11月1日正式开售
  10. HDU2098 分拆素数和【筛选法】
  11. 数学建模系列--拟合算法
  12. 检查网络端口是否正常
  13. 科普:QLED和OLED到底有何区别?
  14. 开源一个电子胸牌项目,很棒!
  15. 【Arduino】坐姿检测器
  16. 中国高校十大热门BBS
  17. PyQt5学习(17):实现与matplotlib的结合,以及类似的pyqtgraph
  18. Gee引擎配置微端不更新,连接不上,尝试重新连接的解决方法
  19. 论文阅读笔记之Dispnet
  20. C或C++中的/和%

热门文章

  1. ajax get请求_python测试开发django50.jquery发送Ajax请求(get)
  2. python处理json数据_python处理json格式的数据
  3. php输入地址查询,PHP查询用户IP所在地址
  4. pat 乙级 1009 说反话 (C++)
  5. 【渝粤教育】国家开放大学2018年春季 0283-21T广告创意与表现(二) 参考试题
  6. 【渝粤教育】国家开放大学2018年秋季 0299-21T中国古代文学(1) 参考试题
  7. 【渝粤题库】陕西师范大学200821 课程与教学论(计算机)
  8. linux 编译src.rpm,CentOS6.5下编译src.rpm包的内核
  9. 土地利用覆被变化的概念_欠压实概念极其荒谬
  10. python 傅里叶_基于python的图像傅里叶处理