240 发简信
IP属地:上海
  • 是的,main thread和Thread-0~4的第一次打印是随机的,因为是并行执行的

    CountDownLatch详解

    CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDow...

  • 研究生就这?我大4还没毕业这些都基本会了,你说的这些技术我都自己开发过秒杀系统了,就这?

  • 我面试的时候咋没碰到这么简单的问题😂

  • @83b5f919eeca 正常情况下,我们在使用CountDownLatch的时候都是主线程调用await()方法进入等待状态,而其他的各个线程则在执行完各自的任务之后调用countDown()以进行倒数,当倒数至0的时候就会唤醒等待的await()方法的线程继续主要的逻辑。这个步骤如果反过来,比如如果是有多个线程都执行了await()方法,这些线程都会处于等待状态,还是只有在其他线程在调用countDown()方法倒数至0的时候才开始唤醒等待于await()方法处的线程。这里的唤醒逻辑是比较有意思的,本质上这其实是一个锁,当倒数到0的时候,就会“解锁”了,但是一般我们的锁在“解锁”的时候是只会唤醒等待队列中的第一个线程的,以继续其逻辑处理,这就是独占锁。但是这里的await()方法处等待的线程锁是一个共享锁,也就是说,只要“解锁”之后,由于是共享的,那么这里等待的所有线程都会被唤醒。

    CountDownLatch详解

    CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDow...

  • @进击的柚子 await()是由主线程执行的,而countDown()是在finally中执行的。这样在所有执行任务的线程都调用完countDown()方法之后(也即各个子任务都执行完毕之后)主线程才会从await()方法处被唤醒,然后继续执行主线程中的逻辑。

    CountDownLatch详解

    CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDow...

  • 生成的代码中,setter为什么会抛出异常,getter方法为什么没有return语句

    Dubbo之Wrapper生成的子类字节码

    直接上图 Dubbo在创建Invoker的时候先将ref实现类包装成了一个Wrapper,然后Invoker被调用的时候会触发doInvoke()方法,然后调用Wrapper...

  • 最开始那个就是完整的代码

    Spring自定义标签解析与实现

    在Spring Bean注册解析(一)和Spring Bean注册解析(二)中我们讲到,Spring在解析xml文件中的标签的时候会区分当前的标签是四种基本标签(import...

  • 120
    netty源码分析之揭开reactor线程的面纱(一)

    netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮...

  • @小布爱着宽宽 你这个运行结果是OK的,这里的情况其实是,总共有0 1 2 3 4以及main留个线程。main线程负责启动每个子线程的任务,其实每个线程的start方法都已经调用了,但是cpu并不一定保证调用start()方法之后该线程就会立即执行任务中的第一条System.out.println()语句,因为cpu会根据自己的判断来分配时间,也就是说现在五个线程都启动之后,加上main线程都在争抢CPU时间,然后0和1号线程先抢到cpu执行权限,首先执行了第一个System.out.println()语句打印了最开始两条语句,接着这两个线程进入睡眠,再就是main线程争取到了cpu,从而打印了main thread await语句,并且由于调用await()方法而进入等待状态,接着是1和4号线程执行任务中的第一条打印语句。
    四个线程都进入睡眠状态之后,随着他们睡眠结束,但是需要注意的是,await()方法是在finally中执行的,也就是说,只有所有的线程在睡眠完成,然后打印finished语句,最后执行finally之后CountDownLatch才会倒数到0,此时main线程才会从等待中被唤醒。也就是说main线程的打印语句一定是在最后执行的。

    CountDownLatch详解

    CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDow...

  • @山丘_Maple 你把你的代码和运行结果都贴一下,我看一下

    CountDownLatch详解

    CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDow...

  • 跑步不能减肥,亲身经历

    这些话激励我每天跑步,减肥几十斤(三)

    41、水滴石穿,不是因为水的力量,而是时间的力量。 一件事只要坚持的时间够久,量变就会发生质变。 没有发生质变,是因为量太小的缘故。 每天跑步,锻炼的不仅是我的体魄,更是我的...

  • 兄台为何想不开

    项目上线前一天出了惊天大bug

    惊出一身冷汗,库存项目明天正式上线,但今天下午发现了惊天大bug,导致库存差异行数达到了3000条,库存准确率降到了94%,而上线标准为库存准确率达到必须达到四个9(即库存准...

  • 不会减肥的,亲测有效

    每天跑2公里,连续坚持30天到底能不能减肥?

    每天跑步2公里,30天才消耗1顿肯德基的热量,到底能不能减肥? 现在是个看脸看身材的时代,好看的脸蛋靠基因,而完美的身材则靠自律。 想让身材变得更加有型,可以通过运动来实现,...

  • 跑步确实是一个好习惯,长期坚持跑步的好处多多,什么保持健康,提升气质,增强自信,改变生活,帮助睡眠等等,只要你能想到的好处都可以和跑步联系起来,关键在于你能坚持多久,越久越能给你带来好处……

  • 请问楼主,你买的书是正版的吗,淘宝的我看都是复印的,没有最新的正版的

    有一本书我想会一生推《beyond feelings》,你真的应该越早看到越好

    有一本书,是被身边头脑比较不错的人推荐看的,看了英文的电子版,在还没有看完的时候就马上入了纸质书中文版(没找到纸质的英文版),我认为这是每个人都需要的书,甚至应该编成教材...