![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 52
CaptainCats
悟已往之不谏、知来者之可追。
展开
-
Java分布式锁
Java分布式锁我的理解应该叫集群锁或者跨实例锁锁的作用是在多线程情况下,控制线程同步访问变量,执行代码块、方法,例如synchronized,在单个jvm进程中,这样是奏效的。但是在分布式环境中,单个服务往往都是要部署多台实例的,在有多个jvm进程的集群里,synchronized就达不到我们的要求了。synchronized只能控制当前jvm进程中的线程,对于其它jvm进程中的线程,它无能为力。也就是说有可能一个jvm中的线程是同步执行的,在此过程中,或许会有集群里其它jvm的线程执行到原创 2021-08-27 19:54:52 · 2318 阅读 · 0 评论 -
Java多线程-03.Semaphore、Exchanger
Semaphore信号灯package com.duohoob.jvm.thread;import java.util.concurrent.Semaphore;/** * 信号灯 * @author yangwei * */public class SemaphoreTest { public static void main(String[] args) { Semaphore semaphore = new Semaphore(2); // permits=2,允许最多两原创 2021-08-06 19:03:10 · 105 阅读 · 0 评论 -
Java多线程-02.CountDownLatch、CyclicBarrier、Phaser
CountDownLatch门栓package com.duohoob.jvm.thread;import java.util.concurrent.CountDownLatch;/** * 门栓 * @author yangwei * */public class CountDownLatchTest { static void m() { // 10个线程 Thread[] threads = new Thread[10]; // 倒数计数门栓 Count原创 2021-08-06 19:02:36 · 164 阅读 · 0 评论 -
Java多线程-01.ReentrantLock、ReadWriteLock
CAScompare and setcas(V, expected, newValue)我们要修改V的值为newValue,如果它是我们期望的值expected,则修改,否则重新比较或失败。CAS是CPU层面的支持,不会被打断。开发工作中,如果需要频繁地加synchronized锁,可以通过原子的Atomic类来实现,这些Atomic开头的类的内部自动就带了锁,当然这些锁挺不是重量级synchronized锁,而是通过CAS操作来实现的(号称无锁)。AtomicInteger就是concu原创 2021-08-05 20:44:04 · 229 阅读 · 0 评论 -
Java多线程-00.线程
概念进程process进程是操作系统进行资源分配的基本单位。线程thread线程是CPU调度执行的基本单位,进程是线程的容器,每个线程都有自己的线程栈和寄存器环境。主线程与子线程jvm启动时会创建一个主线程,负责执行main方法;如果在线程a中创建了线程b,称线程b为线程a的子线程。线程的创建有继承Thread类、实现Runnable接口、实现Callable接口、线程池、lambda表达式等。ThreadCreatepackage com.duohoob.jvm.thread;原创 2021-08-04 23:50:18 · 92 阅读 · 0 评论