首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏有文化的技术人

    实现数据库锁的两种方式

    query没有加for update 测试结果 [<Thread(Thread-1, started 140353630779136)>]after query item desc: <Thread(Thread started 140353605601024)>]after query item desc: <Thread(Thread-1, started 140353630779136)> [<Thread(Thread -4, started 140353605601024)>]after update item desc: <Thread(Thread-4, started 140353605601024)> [<Thread -4, started 140001949357824)>]after update item desc: <Thread(Thread-4, started 140001949357824)> [<Thread (Thread-3, started 140001957750528)>]after query item desc: <Thread(Thread-4, started 140001949357824

    1.1K20编辑于 2022-10-27
  • 来自专栏星尘的一个朋友

    读书笔记《Java并发编程的艺术 - 方腾飞》- AQS及相关内容

    同时, 如果释放锁的线程, 再次尝试获取锁的概率, 会非常高. sync = [Thread[Thread-2,5,main], Thread[Thread-3,5,main], Thread[Thread 8,5,main], Thread[Thread-9,5,main]] sync = [Thread[Thread-2,5,main], Thread[Thread-3,5,main], Thread[Thread 8,5,main], Thread[Thread-9,5,main], Thread[Thread-0,5,main]] sync = [Thread[Thread-3,5,main], Thread[Thread 8,5,main], Thread[Thread-9,5,main], Thread[Thread-0,5,main]] sync = [Thread[Thread-3,5,main], Thread[Thread 8,5,main], Thread[Thread-9,5,main], Thread[Thread-0,5,main]] sync = [Thread[Thread-3,5,main], Thread[Thread

    45820发布于 2020-11-25
  • 来自专栏有文化的技术人

    Zookeeper的通信协议详解

    效果展示 2020-04-21 19:26:53.990 localhost cms_watcher info INFO cms_watcher [pid:240] [Thread-4] [connection.py 9888, use_ssl: False 2020-04-21 19:26:53.990 localhost cms_watcher info INFO cms_watcher [pid:240] [Thread ', read_only=False) 2020-04-21 19:26:53.991 localhost cms_watcher info INFO cms_watcher [pid:240] [Thread test: read socket 2020-04-21 20:05:03.973 localhost cms_watcher info INFO cms_watcher [pid:240] [Thread test: send request 2020-04-21 20:25:13.460 localhost cms_watcher info INFO cms_watcher [pid:9078] [Thread

    1.2K30编辑于 2022-10-27
  • 来自专栏javathings

    何时该使用 ThreadLocal,它的工作原理是什么(面试必背)?

    Thread-0 6 Thread-0 7 Thread-0 8 Thread-2 4 Thread-2 9 Thread-2 10 Thread-2 11 Thread-2 12 Thread -4 13 Thread-4 14 Thread-4 15 Thread-4 16 Thread-4 17 Thread-3 3 Thread-3 18 Thread-3 19 Thread 2 Thread-0 3 Thread-0 4 Thread-0 5 Thread-2 1 Thread-2 2 Thread-2 3 Thread-2 4 Thread-2 5 Thread -4 1 Thread-4 2 Thread-4 3 Thread-4 4 Thread-4 5 Thread-1 1 Thread-1 2 Thread-1 3 Thread-1 4

    1.1K20发布于 2018-11-13
  • 来自专栏房东的猫

    CyclicBarrier介绍

    Exception e) { e.printStackTrace(); } } } } 执行结果 Thread-3 到达栅栏 A Thread 到达栅栏 A Thread-0 到达栅栏 A Thread-2 到达栅栏 A Thread-1 到达栅栏 A Thread-0 完成最后任务 Thread-0 冲破栅栏 A Thread-3 冲破栅栏 A Thread -4 冲破栅栏 A Thread-1 冲破栅栏 A Thread-2 冲破栅栏 A Thread-1 到达栅栏 B Thread-2 到达栅栏 B Thread-4 到达栅栏 B Thread-0 到达栅栏 B Thread-3 到达栅栏 B Thread-3 完成最后任务 Thread-3 冲破栅栏 B Thread-1 冲破栅栏 B Thread-2 冲破栅栏 B Thread-4 冲破栅栏 B Thread

    65441发布于 2021-10-15
  • 来自专栏python3

    Python多线程学习 setDae

    执行结果: Thread-1 will wait 3 secondsThread-2 will wait 4 seconds Thread-3 will wait 1 seconds Thread Thread-4 finished! 对于sleep时间过长的线程(这里是2和4),将不被等待。 由于Thread-3之前已结束,转而对Thread-4执行join操作。 再过去1秒(总共运行了3秒),main thread发现Thread-4没有结束(Thread-4需要5秒运行,现在还剩2秒),因此发生timeout,继续对Thread-5执行join操作。 再经过1秒,Thread-4结束。 后台线程 默认情况下,主线程在退出时会等待所有子线程的结束。

    42010发布于 2020-01-08
  • 来自专栏码力up

    ReentrantLock 加锁与解锁流程详解(源码分析,小白易懂)

    font style="color:rgb(38, 38, 38);">原本的head因为从链表断开,可以被垃圾回收 解锁竞争失败 如果这时候有其他线程来竞争(非公平的体现),例如这时有Thread -4来了 如果不巧又被Thread-4抢先 - Thread-4被设置为exclusiveOwnerThread,state 解锁竞争失败 如果有其他线程(如Thread-4)竞争。 Thread-4可能抢先设置为exclusiveOwnerThread,state为1。

    10010编辑于 2025-12-18
  • 来自专栏后端知识体系

    CyclicBarrier使用方法

    Thread-7 后续操作Thread-7 后续操作Thread-0 后续操作Thread-1 后续操作Thread-5 后续操作Thread-2 后续操作Thread-6 后续操作Thread-3 后续操作Thread }).start(); } } } 运行结果 读取Thread-0 读取Thread-3 读取Thread-2 读取Thread-1 读取Thread-5 读取Thread 额外任务执行 后续操作Thread-1 后续操作Thread-0 后续操作Thread-5 后续操作Thread-7 后续操作Thread-3 后续操作Thread-2 后续操作Thread-6 后续操作Thread ()); }).start(); } } } 运行结果 读取Thread-0 读取Thread-1 读取Thread-2 读取Thread-3 读取Thread -4 后续操作Thread-4 后续操作Thread-0 后续操作Thread-2 后续操作Thread-3 后续操作Thread-1 CyclicBarrier复用 读取Thread-5 读取Thread

    1.1K20编辑于 2022-07-14
  • 来自专栏Java系列文章

    Spring Boot 默认的指标数据从哪来的?

    name=playCache,result=updated} throughput=0.116667/s 2019-07-17 13:08:48.841 INFO 93052 --- [ Thread cacheManager=cacheManager,name=playCache} value=0 B 2019-07-17 13:08:48.847 INFO 93052 --- [ Thread cacheManager=cacheManager,name=playCache} value=0 B 2019-07-17 13:08:48.908 INFO 93052 --- [ Thread cacheManager=cacheManager,name=playCache} value=0 B 2019-07-17 13:08:48.909 INFO 93052 --- [ Thread cacheManager=cacheManager,name=playCache} value=0 B 2019-07-17 13:08:48.909 INFO 93052 --- [ Thread

    1.6K21发布于 2019-10-15
  • 来自专栏后端架构师

    发生死锁怎么办

    } catch (InterruptedException e) { e.printStackTrace(); } } } 控制台打印 Thread -4获取 lockB 成功 Thread-3获取 lockA 成功 Thread-3尝试获取 lockB Thread-4尝试获取 lockA 我们可以发现 Thread-3 获取 lockA 成功后尝试获取 version is 25.181-b13 Deadlock Detection: Found one Java-level deadlock: ============================= "Thread lock Monitor@0x000000001f011ef8 (Object@0x00000007721d90e0, a java/lang/Object), which is held by "Thread Thread-4获取 lockA 成功 Thread-4尝试获取 lockB Thread-4获取 lockB 成功 Thread-3获取 lockA 成功 Thread-3尝试获取 lockB Thread

    58510发布于 2020-03-24
  • 来自专栏大数据学习笔记

    Java Lock机制解读

    Thread-4 be ready to read data! Thread-2 have read data :null Thread-0 have read data :null Thread-4 have read data :null Thread-5 be Thread-4 be ready to read data! Thread-2 have read data :1371 Thread-0 have read data :1371 Thread-4 have read data :1371 Thread-5 be Thread-4 be ready to read data!

    34710编辑于 2022-05-06
  • 来自专栏PPV课数据科学社区

    python多线程编程(2): 线程的创建、启动、挂起和退出

    __main__': test() 执行结果: I’m Thread-1 @ 0 I’m Thread-2 @ 0 I’m Thread-5 @ 0 I’m Thread-3 @ 0 I’m Thread -4 @ 0 I’m Thread-3 @ 1 I’m Thread-4 @ 1 I’m Thread-5 @ 1 I’m Thread-1 @ 1 I’m Thread-2 @ 1 I’m Thread

    1.6K60发布于 2018-04-23
  • 来自专栏米扑专栏

    Python 学习入门(22)—— 线程同步

    Thread-3', 2, ':now left:', 13) Thread-3: release('Thread-2', 1, ':now left:', 12) Thread-2: release('Thread -4', 3, ':now left:', 11) Thread-4: release ('Thread-6', 5, ':now left:', 10) Thread-6: release ('Thread -4', 3, ':now left:', 1) Thread-4: release ('Thread-6', 5, ':now left:', 0) Thread-6: release('Thread_id -4', 3, ':now left:', 11) Thread-4: release ('Thread-5', 4, ':now left:', 10) Thread-5: release('Thread -4', 3, ':now left:', 1) Thread-4: release('Thread-5', 4, ':now left:', 0) Thread-5: release ('Thread_id

    48430发布于 2019-02-19
  • 来自专栏大大的微笑

    JUC包下的CountDownLatch,CyclicBarrier,Semaphore

    System.out.println(num); } System.out.println("end:"+sum); 控制台: threadName:Thread-2 threadName:Thread Thread-6 Thread-6 wait 2s threadName:Thread-1 Thread-1 wait 0.5s threadName:Thread-0 Thread-0 wait 2s Thread ******** ThreadName:Thread-0 ThreadName:Thread-1 ThreadName:Thread-2 ThreadName:Thread-3 ThreadName:Thread ThreadName:Thread-4,end! ThreadName:Thread-3,end! ThreadName:Thread-0,end! ThreadName:Thread-6,end!

    61380发布于 2018-02-27
  • 来自专栏一杯82年的JAVA

    探索JAVA并发 - 悲观锁和乐观锁

    Thread-0 waiting Thread-0 is coming, count = 1 Thread-1 waiting Thread-2 waiting Thread-3 waiting Thread -4 waiting Thread-0 waiting Thread-4 is coming, count = 1 Thread-4 waiting Thread-3 is coming, count coming, count = 1 Thread-1 waiting Thread-2 waiting Thread-3 is coming, count = 1 Thread-3 waiting Thread -4 is coming, count = 1 Thread-4 waiting Thread-0 is coming, count = 1 Thread-0 waiting Thread-4 is coming

    71530发布于 2019-08-26
  • 来自专栏犀牛饲养员的技术笔记

    带你了解控制线程执行顺序的几种方法

    (Thread.currentThread().getName() + "开始执行"); } } 运行结果: 线程:Thread-1 等待 Thread-0 线程:Thread-5 等待 Thread -4 线程:Thread-4 等待 Thread-3 线程:Thread-3 等待 Thread-2 线程:Thread-2 等待 Thread-1 线程:Thread-0 等待 main 线程:Thread Thread-6 等待 Thread-5 线程:Thread-9 等待 Thread-8 主线程执行完毕 Thread-0开始执行 Thread-1开始执行 Thread-2开始执行 Thread-3开始执行 Thread countDownLatch.countDown(); } } 输出, 线程Thread-0开始执行 线程Thread-3开始执行 线程Thread-2开始执行 线程Thread-1开始执行 线程Thread next.countDown(); } } } 输出, 线程Thread-0开始执行 线程Thread-1开始执行 线程Thread-2开始执行 线程Thread-3开始执行 线程Thread

    2.1K20发布于 2020-08-10
  • 来自专栏后端码事

    关于 ThreadLocal 你需要知道的几点

    ; for (Thread thread : threads) { thread.start(); } 输出: Thread-0: 12 Thread-2: 14 Thread-1: 13 Thread the target VM, address: '127.0.0.1:59273', transport: 'socket' Thread-1: 13 Thread-0: 12 Thread-2: 14 Thread

    44510发布于 2020-09-10
  • 来自专栏高爽的专栏

    Java线程(八):锁对象Lock-同步问题更完美的处理方式

    读取" + this.data); } }         部分输出结果: Thread-1准备写入数据 Thread-3准备读取数据 Thread-2准备写入数据 Thread-0准备写入数据 Thread -4准备读取数据 Thread-5准备读取数据 Thread-2写入12 Thread-4读取12 Thread-5读取5 Thread-1写入12         我们要实现写入和写入互斥,读取和写入互斥 getName() + "读取" + this.data); } finally { rwl.readLock().unlock();// 释放读锁 } } }         部分输出结果: Thread -4准备读取数据 Thread-3准备读取数据 Thread-5准备读取数据 Thread-5读取18 Thread-4读取18 Thread-3读取18 Thread-2准备写入数据 Thread-2

    54600发布于 2017-12-28
  • 来自专栏编程

    69. 对并发熟悉吗?谈谈线程间的协作(wait/notify/sleep/yield/join)

    -4 Start----- Thread-0 End------- -----------分割线------------- Thread-4 End------- Thread-3 End------- 执行结果如下: Thread-0 start----- Thread-1 start----- Thread-2 start----- Thread-3 start----- Finished~~~ Thread -4 start----- Thread-2 end------ Thread-4 end------ Thread-1 end------ Thread-0 end------ Thread-3 end -- Thread-1 end------ Thread-2 start----- Thread-2 end------ Thread-3 start----- Thread-3 end------ Thread ead-2 end------ Thread-3 start----- Thread-3 end------ Thread-4 start----- Thread-4 end------ Finished

    29410编辑于 2024-11-01
  • 来自专栏大数据入坑指南

    python自学成才之路 线程间协作之Semaphore,threading.local()

    6): myThread().start() 输出: Thread-1 获得锁 Thread-2 获得锁 Thread-1 释放锁 Thread-2 释放锁 Thread-3 获得锁 Thread -4 获得锁 Thread-4 释放锁 Thread-5 获得锁 Thread-3 释放锁 Thread-6 获得锁 Thread-6 释放锁 Thread-5 释放锁 BoundedSemaphore start() for i in range(4): MyAcquire().start() 输出: Thread-1 释放锁 Thread-2 获得锁 Thread-5 获得锁 Thread

    1.1K20发布于 2020-09-08
领券