
并发编程
代码搬运工Spurs
我不停的擦拭手中的利剑,不是因为我喜欢它,也不是因为它能带来安全,只是因为,每当下一次冲锋的号角响起时,我能够迅速拔出,纵横厮杀,直至战斗结束,不让自己倒下。
展开
-
JDK 源码剖析(二)共享锁
前置知识 —— AQSAQS 的全称是 AbstractQueuedSynchronizer(抽象队列同步器),是基于 FIFO 队列实现的,并且内部维护了一个状态变量 state,通过原子更新这个状态变量 state 即可以实现加锁解锁操作。简单点来说就是加锁失败就会进入一个先进先出的队列中阻塞等待,如果锁被释放会唤醒队列中等待的线程去重新执行加锁逻辑。内部类与属性内部类 Node:static final class Node { // 标识节点是共享模式下的节点 static原创 2020-10-13 10:28:14 · 152 阅读 · 0 评论 -
JDK 源码剖析(一)独占锁
前置知识 —— AQSAQS 的全称是 AbstractQueuedSynchronizer(抽象队列同步器),是基于 FIFO 队列实现的,并且内部维护了一个状态变量 state,通过原子更新这个状态变量 state 即可以实现加锁解锁操作。简单点来说就是加锁失败就会进入一个先进先出的队列中阻塞等待,如果锁被释放会唤醒队列中等待的线程去重新执行加锁逻辑。内部类与属性内部类 Node:static final class Node { // 标识节点是共享模式下的节点 static原创 2020-10-09 15:12:23 · 164 阅读 · 0 评论 -
并发编程(1)并发编程基础
并发性和多线程并发性在过去单 CPU 时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 CPU,并交由操作系统来完成多任务间对 CPU 的运行切换,以使得每个任务都有机会获得一定的时间片运行。随着多任务对软件开发者带来的新挑战,程序不在能假设独占所有的 CPU 时间、所有的内存和其他计算机资源。一个好的程序榜样是在其不再使用这些资源时对其进行释放,以使得其他程序能有机会使用这些资原创 2020-09-27 11:10:22 · 217 阅读 · 0 评论