在Web应用程序中,类的定义如下:
public class ThreadSession {
private static final int MAX_AVAILABLE = 1;
static private final Semaphore semaphore = new Semaphore(MAX_AVAILABLE, true);
则有一个或多个线程由以下操作创建:
class wsClientThread extends Thread {
public void run() { ... }
...
wsClientThread clientThread = new wsClientThread(clientSocket);
clientThread.start();
让我们将这些线程称为A、B ..
在这些线程中,访问ThreadSession.semaphore如预期的那样工作正常,但是在重新部署web应用程序(通过jboss 4.05)并重新加载我的index.jsp之后,在线程A、B、.. ThreadSession.semaphore中为空(但ThreadSession.MAX_AVAILABLE = 1)
不明白为什么会这样...有人能帮我吗?
感谢克里斯蒂安
1条答案
按热度按时间3htmauhk1#
经过几次测试,问题消失了,我认为这是由应用服务器(jboss 4)中的一些不稳定引起的