#后浪#硬不硬你说了算,JAVA开发3年多线程都不会?后浪你好意思吗

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片
这里并没有讲什么新东西 , 只是把多线程一些知识来个总结 。 大家懂得可以复习复习 , 还有些童鞋对多线程朦胧的可以拿这个做为入门~
举个栗子说明啥是多线程:玩游戏 , 前面一堆怪 , 每个怪都是一个线程 , 你射了一枪 , 子弹飞出去了 , 这颗子弹也是一个线程 。 你打开你的进程管理 , 看到你游戏的后台进程 , 这就是进程 。
一、线程创建
这里友情提示:2、3、4种方法的参数 , 三种写法是等效的(new two() <==> ()->{ <==> new Runnable)
说到这肯定要顺便提一下 , 面试时候爱问的 , 继承Thread和实现Runnable的区别 。 一句话回答:单继承多实现 。
二、锁(synchronized和Lock)
锁其实很多 , 读写锁 , 分布式锁 , 等等 。 这里我们就先介绍最常用的2个 。
①synchronized , 这个单词是同步的意思 。
synchronized: 对象级别 。 例如:一个类有2个方法 , 两个方法都上锁 , 因为是对象级别 , 即使2个线程访问不同方法 , 一个方法没有释放锁另一个也不能执行 , 这就是同步 。 除非另一个方法没上锁 , 那么该方法就是异步的 。
一个对象一把锁:synchronized , 对象锁 , 只对一个对象生效!
static synchronized: 就是类级别的锁 。 那么即使你实例化多个实例 , 不同线程去跑 , 这个类一次也只允许一个线程进来 。
②锁的重入
锁重入:比如2个方法one、two都加了synchronized , one里调用了two , 那么可以执行two方法(即使one没有执行完) 。 继承也可以用锁重入 。
③Lock lock和synchonizide差不多 , 但是功能性更强一点 。
读写锁意思就是:读读共享 , 读写互斥 , 写写互斥 。 意思是如果两个方法都是调用读锁 , 那么多线程可以并发访问 。 但是一个方法调用读方法 , 一个调用写方法 , 那么该锁就会变成同步锁(一个方法完了才去执行另一个) 。
三、sleep、wait、notify
wait会让出锁的控制权 , notify会唤醒wait 。
notify和sleep的区别:sleep在时间到了会自动唤醒 , wait要notify唤醒 。
注意:notify不会立即释放锁 , 所以上述例子 , 会在notify后一秒才释放锁 。
推荐阅读
- 创业最前线|为信任买单,全网首份“后浪”专题报告发布:能省会花
- 极客数码前沿|7nm笔记本轻薄标杆,宏碁传奇后浪专属轻薄本,AMD
- 『独角兽』拼多多、B站、声网……“后浪”是如何在巨头眼皮底下崛起的?
- 卜娃娃|被“后浪”拍死,还有多远?,微信终究“活成”了QQ
- 首席人物观|后浪黄峥,前浪黄光裕
- 后浪科普|2020前瞻:Mac换成Arm处理器,对苹果有什么好处?,WWDC
- 乐居财经|未来十年要和“后浪”在一起,嘉御基金卫哲:今天再布局90后有点晚了
- 深扒财经圈|很容易走弯路,雷军倾情鼓励有梦想的后浪们!没钱最痛苦
- 深扒财经圈|与“后浪”讲述经验,坚持最重要,小米CEO现身弹幕网站
- 五商科技王|雷军却不忘初心,空降B站给“后浪”三条暖心建议,身价千亿
