zoukankan      html  css  js  c++  java
  • H2O 生成 多线程并发控制 Semaphore

    题目:

      现在有两种线程,氧 oxygen 和氢 hydrogen,你的目标是组织这两种线程来产生水分子。

      存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。

      氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。

      这些线程应该三三成组突破屏障并能立即组合产生一个水分子。

      你必须保证产生一个水分子所需线程的结合必须发生在下一个水分子产生之前。

      换句话说:

    • 如果一个氧线程到达屏障时没有氢线程到达,它必须等候直到两个氢线程到达。
    • 如果一个氢线程到达屏障时没有其它线程到达,它必须等候直到一个氧线程和另一个氢线程到达。

      书写满足这些限制条件的氢、氧线程同步代码。

     

    思路:

      H 氢 获取时  获取一个氢信号量   释放一个氧信号量   (氢执行两次)

      O 氧 获取时  获取两个氧信号量   释放两个氢信号量   (氧执行一次)

      


    (一) 代码

      

      


        西安快乐

  • 相关阅读:
    jmeter 数据库类型的脚本
    jmeter 协议到脚本编写
    python socket粘包
    微信公众号开发
    常用windows和office激活工具
    分辨率等概念
    设置单元格同高或同宽
    单元格内容前或后增加内容
    单元格内数字复制和递增
    excel单元格内容换行
  • 原文地址:https://www.cnblogs.com/misscai/p/14674104.html
Copyright © 2011-2022 走看看