美文网首页
Java最简单粗暴讲解多线程,还不赶紧上车!

Java最简单粗暴讲解多线程,还不赶紧上车!

作者: 分不清java | 来源:发表于2018-11-22 20:54 被阅读2次

这里并没有讲什么新东西,只是把多线程一些知识来个总结。大家懂得可以复习复习,还有些童鞋对多线程朦胧的可以拿这个做为入门~

举个栗子说明啥是多线程:玩游戏,前面一堆怪,每个怪都是一个线程,你射了一枪,子弹飞出去了,这颗子弹也是一个线程。你打开你的进程管理,看到你游戏的后台进程,这就是进程。

一、线程创建

这里友情提示: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没有执行完)。继承也可以用锁重入。

小编在这里给大家推荐一个java学习群:818464711,进群找管理可以领取免费系统学习资料,以及每天可以免费去听直播java教学,欢迎小白和进阶中的朋友!

③Lock lock和synchonizide差不多,但是功能性更强一点。

读写锁意思就是:读读共享,读写互斥,写写互斥。意思是如果两个方法都是调用读锁,那么多线程可以并发访问。但是一个方法调用读方法,一个调用写方法,那么该锁就会变成同步锁(一个方法完了才去执行另一个)。

三、sleep、wait、notify

wait会让出锁的控制权,notify会唤醒wait。

notify和sleep的区别:sleep在时间到了会自动唤醒,wait要notify唤醒。

注意:notify不会立即释放锁,所以上述例子,会在notify后一秒才释放锁。

总结:本节主要介绍了多线程、锁以及线程间通信等基础知识点。下一节,我要讲原子计数器,volatile,countdownLatch,并发集合,并发队列,线程副本等。算是多线程的进阶吧。

相关文章

  • Java最简单粗暴讲解多线程,还不赶紧上车!

    这里并没有讲什么新东西,只是把多线程一些知识来个总结。大家懂得可以复习复习,还有些童鞋对多线程朦胧的可以拿这个做为...

  • 浅谈多线程

    “简单不先于复杂,而是在复杂之后.” —— Alan Perlis 首先:对于多线程,最简单粗暴的理解:就是同时执...

  • 多线程--基础

    Java多线程 从本篇开始,笔者开始了一个新的专题,来说说Java多线程。 在讲解Java多线程之前,我们来了解下...

  • Java多线程

    Java多线程 从本篇开始,笔者开始了一个新的专题,来说说Java多线程。 在讲解Java多线程之前,我们来了解下...

  • 多线程--同步与锁

    同步与锁 上一篇中,笔者介绍了Java多线程的基础知识,主要讲解了进程/线程的区别、Java多线程的创建、Java...

  • 多线程详解(1)——线程基本概念

    0. 简介 这个系列开始来讲解 Java 多线程的知识,这节就先讲解多线程的基本知识。 1. 进程与线程 1.1 ...

  • 马士兵java最全学习资源,赶紧收藏一下

    马士兵2020年最新Java多线程高并发讲解——20年架构师告诉你Java多线程与高并发应该怎么学 https:/...

  • 马士兵java最全学习资源,赶紧收藏一下

    马士兵2020年最新Java多线程高并发讲解——20年架构师告诉你Java多线程与高并发应该怎么学 https:/...

  • Java多线程之线程池(ThreadPoolExecutor)实

    在上一篇文章Java中实现多线程的3种方法介绍和比较中,我们讲解了Java中实现多线程的3种方法。使用多线程,就必...

  • Java篇-多线程

    多线程的概念已经写过很多了,java的多线程的概念和之前讲解的 OC 与 python多线程相同,这里就不再赘述了...

网友评论

      本文标题:Java最简单粗暴讲解多线程,还不赶紧上车!

      本文链接:https://www.haomeiwen.com/subject/ylurqqtx.html