Java同步

发布于 2024-11-02 07:05:17 字数 530 浏览 1 评论 0原文

我有点卡在这里,我必须编辑这段代码,以便火车必须在隧道锁前等待火车从相反方向驶出才能进入隧道,我必须使用内置的java同步条件

public synchronized void useTunnelLock(Train train)
{


    System.out.println(train + " " + train.getDirection());
    System.out.println(train + " exiting lock");
    try
    {
        // occupy tunnel lock for 5s
        Thread.sleep(5000);
    }
    catch (InterruptedException ex)
    {
        ex.printStackTrace();
    }

    // swap direction of tunnel lock
    direction = (direction == ASCENDING)? DESCENDING : ASCENDING;
}

I am bit stuck here, I have to have edit this code so that a train must wait in front of the tunnel lock for a train to come in the opposite direction to exit before it can enter the tunnel, i have to use java built in synchronisation condition

public synchronized void useTunnelLock(Train train)
{


    System.out.println(train + " " + train.getDirection());
    System.out.println(train + " exiting lock");
    try
    {
        // occupy tunnel lock for 5s
        Thread.sleep(5000);
    }
    catch (InterruptedException ex)
    {
        ex.printStackTrace();
    }

    // swap direction of tunnel lock
    direction = (direction == ASCENDING)? DESCENDING : ASCENDING;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愁杀 2024-11-09 07:05:17

这似乎使用 信号量是合理的

This seems like it would be reasonable to use a semaphore.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文