• java之线程(四)


    乐观锁:事情一定会发生,先上锁

    悲观锁:事情未必发生,不上锁

    自旋锁:是乐观锁的一种实现,

    ABA问题:1.加版本(version/boolean)

    CAS原子性:使用unsafe.compareAndSwap,是一条指令

    排他锁:只有一个线程能访问代码

    共享锁:多个线程能同时访问代码

    读写锁:

            读锁:读时候不允许写,能运行同时读

            写锁:写的时候,不允许写也不允许读

    统一锁:大粒度的锁,解决死锁

            死锁的情况下,把多个锁统一成大锁

    分段锁:分成小粒度的锁

            ConcurrentHashMap(JDK1.7)

    AtomicStampedReference:
    1. package com.company;
    2. import java.util.concurrent.CountDownLatch;
    3. import java.util.concurrent.atomic.AtomicStampedReference;
    4. public class Main {
    5. public static void main(String[] args) throws Exception {
    6. AtomicStampedReference ar = new AtomicStampedReference(new Order(0L, 0L), 0);
    7. CountDownLatch cdl = new CountDownLatch(10000);
    8. for (int i = 0; i < 10000; i++) {
    9. new Thread(() -> {
    10. Order old;
    11. int stamp;
    12. Order o = new Order();
    13. do {
    14. old = ar.getReference();
    15. stamp = ar.getStamp();
    16. o.setSeq(old.getSeq() + 1);
    17. } while (!ar.compareAndSet(old, o, stamp, stamp + 1));
    18. cdl.countDown();
    19. }).start();
    20. }
    21. cdl.await();
    22. System.out.println(ar.getReference().getSeq());
    23. }
    24. static public class Order {
    25. private Long seq;
    26. private Long time;
    27. public Order() {
    28. }
    29. public Order(Long seq, Long time) {
    30. this.seq = seq;
    31. this.time = time;
    32. }
    33. public Long getSeq() {
    34. return seq;
    35. }
    36. public void setSeq(Long seq) {
    37. this.seq = seq;
    38. }
    39. public Long getTime() {
    40. return time;
    41. }
    42. public void setTime(Long time) {
    43. this.time = time;
    44. }
    45. }
    46. }

  • 相关阅读:
    JVM内存模型:理解Java程序的内存管理
    C. Fighting Tournament(模拟/map)
    图论与网络模型——基于R
    Synopsys Sentaurus TCAD系列教程之-Tcl《1》
    获取1688店铺所有商品、店铺列表api
    【Webpack】打包资源的名称路径和清空打包资源
    Redis-使用java代码操作Redis
    Centos7安装SCL源
    PerparedStatement防止SQL注入
    php内核基础说明
  • 原文地址:https://blog.csdn.net/qq_19831379/article/details/126235431