• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

标签:线程

Java技术

线程间的同步与通信(8):Semaphore源码分析

线程间的同步与通信(8):Semaphore源码分析
前言 系列文章目录 Semaphore(信号量)也是常用的并发工具之一,它常常用于流量控制。通常情况下,公共的资源常常是有限的,例如数据库的连接数。使用Semaphore可以帮助我们有效的管理这些有限资源的使用。 Semaphore的结构和ReentrantLock以及CountDownLatch很像,内部采用了公平锁与非公平锁两种实现,如果你已经看过了Re……继续阅读 »

winrains 4个月前 (03-07) 16浏览 0评论 0个赞

Java技术

线程间的同步与通信(7):CyclicBarrier源码分析

线程间的同步与通信(7):CyclicBarrier源码分析
前言 系列文章目录 上一篇 我们学习了基于AQS共享锁实现的CountDownLatch,本篇我们来看看另一个和它比较像的并发工具CyclicBarrier。 与CountdownLatch的区别 将count值递减的线程 在CountDownLatch中,执行countDown方法的线程和执行await方法的线程不是一类线程。例如,线程M,N需要等待线程A……继续阅读 »

winrains 4个月前 (03-07) 14浏览 0评论 0个赞

Java技术

线程间的同步与通信(6):CountDownLatch源码分析

线程间的同步与通信(6):CountDownLatch源码分析
前言 系列文章目录 CountDownLatch是一个很有用的工具,latch是门闩的意思,该工具是为了解决某些操作只能在一组操作全部执行完成后才能执行的情景。例如,小组早上开会,只有等所有人到齐了才能开;再如,游乐园里的过山车,一次可以坐10个人,为了节约成本,通常是等够10个人了才开。CountDown是倒数计数,所以CountDownLatch的用法通……继续阅读 »

winrains 4个月前 (03-07) 18浏览 0评论 0个赞

Java技术

线程间的同步与通信(4):Lock 和 Condtion

线程间的同步与通信(4):Lock 和 Condtion
前言 系列文章目录 前面几篇我们学习了synchronized同步代码块,了解了java的内置锁,并学习了监视器锁的wait/notify机制。在大多数情况下,内置锁都能很好的工作,但它在功能上存在一些局限性,例如无法实现非阻塞结构的加锁规则等。为了拓展同步代码块中的监视器锁,java 1.5 开始,出现了lock接口,它实现了可定时、可轮询与可中断的锁获取……继续阅读 »

winrains 4个月前 (03-07) 19浏览 0评论 0个赞

Java技术

线程间的同步与通信(3):浅析synchronized的实现原理

线程间的同步与通信(3):浅析synchronized的实现原理
前言 系列文章目录 前面两篇文章我们介绍了synchronized同步代码块以及wait和notify机制,大致知道了这些关键字和方法是干什么的,以及怎么用。 但是,知其然,并不知其所以然。 例如: 什么是监视器锁? JAVA中任何对象都可以作为锁,那么锁信息是怎么被记录和存储的? 监视器锁是怎样被获取的? 监视器锁是怎样被释放的? 什么是wait set……继续阅读 »

winrains 4个月前 (03-07) 16浏览 0评论 0个赞

Java技术

线程间的同步与通信(2):wait, notify, notifyAll

线程间的同步与通信(2):wait, notify, notifyAll
前言 上一篇文章我们讲了java的同步代码块, 这一篇我们来看看同步代码块之间的协作与通信. 阅读本篇前你需要知道什么是同步代码块, 什么是监视器锁, 还不是很了解的同学建议先去看一看上一篇文章. 本文的源码基于JDK1.8 系列文章目录 概述 在Java中, 我们可以使用 wait() wait(long timeout) wait(long timeo……继续阅读 »

winrains 4个月前 (03-07) 17浏览 0评论 0个赞

Java技术

线程间的同步与通信(1):同步代码块Synchronized

线程间的同步与通信(1):同步代码块Synchronized
前言 同步代码块(Synchronized Block) 是java中最基础的实现线程间的同步与通信的机制之一,本篇我们将对同步代码块以及监视器锁的概念进行讨论。 系列文章目录 什么是同步代码块(Synchronized Block) 同步代码块简单来说就是将一段代码用一把锁给锁起来, 只有获得了这把锁的线程才访问, 并且同一时刻, 只有一个线程能持有这把锁……继续阅读 »

winrains 4个月前 (03-07) 19浏览 0评论 0个赞

Java技术

Thread类源码解读(3):线程中断interrupt

Thread类源码解读(3):线程中断interrupt
前言 系列文章目录 线程中断是一个很重要的概念,通常,取消一个任务的执行,最好的,同时也是最合理的方法,就是通过中断。 本篇我们主要还是通过源码分析来看看中断的概念。 本文的源码基于JDK1.8 Interrupt status & InterruptedException java线程的中断机制为我们提供了一个契机,使被中断的线程能够有机会从当前的……继续阅读 »

winrains 4个月前 (03-07) 14浏览 0评论 0个赞

Java技术

Thread类源码解读(2):线程状态及常用方法

Thread类源码解读(2):线程状态及常用方法
前言 系列文章目录 上一篇我们讨论了线程的创建,本篇我们来聊一聊线程的状态转换以及常用的几个比较重要的方法。 本篇依然是通过源码分析来了解这些知识。 本文源码基于jdk1.8 。 阅读完本文,你应当有能力回答以下常见面试题: 线程有哪几种状态以及各种状态之间的转换? Thread.sleep() 与 Thread.currentThread().sleep……继续阅读 »

winrains 4个月前 (03-07) 11浏览 0评论 0个赞