美文网首页
多线程篇

多线程篇

作者: 绝对熙俊 | 来源:发表于2019-02-25 11:04 被阅读0次

synchronied 与 lock 的区别

1,存在上区别:synchronized是jvm关键字,lock是java的一个类
2,锁的获取上区别:synchronized获取锁方式不可修改,lock可以指定获取锁的方式
3,锁的释放上区别:synchronized是代码结束或异常都由jvm释放锁,lock必须自己失败
4,锁的状态上:synchronized不可判断锁状态,lock可以判断锁状态
5,锁类型上:synchronized是不可重入,不可打断,非公平。lock是可重入,可判断,可公平

多线程之间如何通讯

1,wait():释放锁
2,notify():唤醒等待锁的一个线程
3,notifyAll():唤醒等待锁的所有线程

wait() 和 sleep() 的区别?

1,wait()是Object的方法,sleep()是Thread的方法
2,wait()释放获取的锁,sleep()不会释放锁资源
3,wait()、notify()、notifyAll()只能在synchronized中运行,sleep()可以在任何地方运行
4,wait()、notify()、notifyAll()不用捕获异常,sleep()必须捕获异常

notify() 和 notifyAll() 有什么区别?

notify() 是只让等待池中的一个线程进入锁池,但是notifyAll()是让等待池中所有的线程都进入锁池

锁池和等待池有什么区别?

1,想要获取到某个对象的锁,但是获取不到的时候,这些线程将会被阻塞到该对象的锁池中
2,已经获取到某对象的锁,但是调用了wait()方法之后,主动放弃了这个锁,这些线程将会进入该对象的等待池中
3,只有锁池中线程才会竞争获取锁,等待池中的线程不会去主动获取锁
4,只有notify()和notifyAll()方法才能将等待池中的线程划分到锁池中,让其去竞争获取锁,从而再次执行。

相关文章

  • iOS多线程篇:NSThread

    iOS多线程篇:NSThread iOS多线程篇:NSThread

  • iOS面试备战-多线程篇

    iOS面试备战-多线程篇iOS面试备战-多线程篇

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

  • iOS - Multi-Thread

    概念篇 进程 线程 多线程 单核多线程 & 多核多线程 并行 & 并发 同步 & 异步 队列 队列 & 任务 的执...

  • Python 主线程捕获子线程异常

    多线程异常 接上一篇Python手动中断(Ctrl-C)多线程程序,这一篇来探讨多线程程序中另一个问题:主线程捕获...

  • 多线程

    上一篇:协议当前篇:多线程 随着多核多线程处理器的出现,多线程编程技术也已经普及,我们之前写的代码都是在单一线程中...

  • Java多线程系列目录(共43篇)-转

    最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。 (一) 基础篇 Java多线程系列--“基础篇”0...

  • 多线程(三)-为主线程减负的多线程方案

    再梳理一篇多线程的文章,正好续上之前的多线程章节,完善下这个章节内容。 一、多线程方案: ThreadPool: ...

  • IOS 多线程知识学习

    学习多线程,转载两篇大神的帖子,留着以后回顾!第一篇:关于iOS多线程,你看我就够了 第二篇:GCD使用经验与技巧...

  • 有个人催牛b

    Java多线程看着一篇足够了

网友评论

      本文标题:多线程篇

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