C/C++教程

王者并发课-铂金8:峡谷幽会-看CyclicBarrier如何跨越重峦叠嶂

本文主要是介绍王者并发课-铂金8:峡谷幽会-看CyclicBarrier如何跨越重峦叠嶂,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

欢迎来到《王者并发课》,本文是该系列文章中的第21篇,铂金中的第8篇

在上一篇文章中,我们介绍了CountDownLatch的用法。在协调多线程的开始和结束时,CountDownLatch是个非常不错的选择。而本文即将给你介绍的CyclicBarrier则更加有趣,它在能力上和CountDownLatch既有相似之处,又有着明显的不同,值得你一览究竟。本文会先从场景上带你理解问题,再去理解CyclicBarrier提供的方案。

一、CyclicBarrier初体验

1. 峡谷森林里的爱情

在峡谷的江湖中,不仅有生杀予夺和刀光剑影,还有着美妙的爱情故事。

峡谷战神铠曾经在危急关头救了大乔,这一出英雄救美让他们擦除了爱情的火花,有事没事两人就在峡谷中的各个角落幽会。其中,峡谷森林就是他们常去的地方,谁先到就等另一个,两人都到齐后,再一起玩耍

这里头,有两个重点。一是他们要相互等待,二是都到齐后再玩耍。现在,我们试想一下,如果用代码来模拟这个场景的话,你打算怎么做。有的同学可能会说,两个人(线程)的等待很好处理。可是,如果是三人呢

所以,这个场景问题可以概括为:多个线程相互等待,到齐后再执行特定动作

接下来,我们就通过CyclicBarrier来模拟解决这个场景的问题,直观感受CyclicBarrier的用法。

在下面这段代码中,我们定义了一个幽会地点(appointmentPlace),以及大乔这两个主人公。在他们都达到幽会地点后,我们输出一句包含三朵玫瑰

这篇关于王者并发课-铂金8:峡谷幽会-看CyclicBarrier如何跨越重峦叠嶂的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!