gpt4 book ai didi

java - 监控程序背后的逻辑

转载 作者:行者123 更新时间:2023-12-01 23:28:39 25 4
gpt4 key购买 nike

我目前正在尝试解决[本书]中发现的“男女通用浴室”问题,( http://greenteapress.com/semaphores/LittleBookOfSemaphores.pdf ) 限制是:- 如果浴室是空的,男性或女性都可以进入- 如果浴室内有男性或女性,则只有相同性别才能进入- 浴室里只能有两个人

令我困惑的是,虽然我对逻辑如何工作的概念有一些了解,但我不确定在哪里/如何实现这段代码。例如,我有一个名为“employee”的类,它扩展线程并可以设置一个变量来显示他们是男性还是女性。我还有一个“浴室”类,它还扩展了包含名为“正在使用”的信号量的线程,该信号量用于确定浴室是否已满。我试图实现书中找到的灯开关结构,我认为它只是一个监视器。我不明白这是如何锁定特定类型的线程的。

我的问题是,我在哪里存储信号量变量,以及访问它们以实现其余逻辑的最佳方法是什么?

编辑:当我提到灯开关时,我指的是第 70 页上的结构,而浴室问题位于第 170 页上。

浴室类包含:

  Semaphore being_used = new Semaphore(1);

Employee类包含:

    private String id;
private int time;
private String type;
private Boolean finished;
private Bathroom b_room;

最佳答案

无需阅读这本书...信号量属于浴室:如果您有三个浴室和七个用户,那么您将拥有三个信号量,而不是一个,而不是七个。当用户申请进入浴室时,应获取信号量许可证;当向其发送退出消息或进入的用户被拒绝进入时,应释放信号量许可证。

关于java - 监控程序背后的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58298645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com