Java同步

标签 java synchronization

我有点卡在这里,我必须编辑此代码,以便火车必须在隧道锁前等待火车从相反方向驶出才能进入隧道,我必须使用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;
}

最佳答案

这看起来使用 semaphore 是合理的。 .

关于Java同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708508/

相关文章:

java - 从用java编码的客户端返回值?

java - 序列化对象会包含元数据吗?

java - 使用反射还是面向切面编程?

winapi - WaitForSingleObjectEx 是否允许提前唤醒?

opencv - FFMPEG 将 image2pipe 中的视频与 RTMP 中的音频同步

mysql - 当 QuickBooks Online 上发生更改时,如何更新我的网络应用程序的数据库?

java - 如何注入(inject)自定义 BeanFactory

java - 在 Java 中解析制表符分隔文本文件时出现错误 ArrayIndexOutOfBoundsException

java - 在不同线程使用时使 Web 方法同步是一个好习惯吗?

java - 此代码是否需要嵌套锁?