【发布时间】:2017-11-28 03:04:43
【问题描述】:
我正在尝试使用信号量将线程锁定几秒钟,然后它才会放弃尝试获取锁定并继续。问题是,我认为信号量实际上并没有锁定任何东西。这是我正在尝试做的事情:
Semaphore lock = new Semaphore(1)
lock.acquire();
//Wait until some other thread releases the lock, or until the timeout
lock.tryAcquire(WAIT_INTERVAL, TimeUnit.MILLISECONDS);
//do whatever
我认为问题是:如果线程已经获得锁,尝试从同一个线程获取两次并不会阻止线程运行。但我不确定。是这样吗?
谢谢大家。
【问题讨论】:
-
无法复制。奇怪的方式来阻止你自己的线程。你在找
Thread.sleep()吗?
标签: java multithreading semaphore