gpt4 book ai didi

java - 在 Apache Tomcat 中使用唯一线程

转载 作者:行者123 更新时间:2023-11-28 23:06:33 25 4
gpt4 key购买 nike

环境
我们使用 apache tomcat 将可视化层 (actionscript - flex)业务层 (java) 进行通信。此通信用于大量请求、对数据库中数据的可视化请求以及大量操作。

问题
问题是我们正在与一个只同时支持一个 session 的摄像头交互,据我所知,apache tomcat 创建了很多线程,这些线程正试图与相机。

也许你认为我们做的是一个糟糕的实现,但问题是有一个功能(实时 View -像录制视频一样直接显示图像-)使得无法发布请求即时照片后的相机。

更加具体
在所有其他与cam交互的方法中,没有问题,因为我们进行了以下步骤:

与摄像头的 1-oppen session
2-用凸轮做任何事
3-释放凸轮

此步骤几乎适用于所有方法(如拍照或下载主题到电脑),但对于实时 View ,我们不能打开一个 session 并每次都关闭它(因为它会产生重要的延迟,并且相机需要准备好),所以我们必须在实时取景时让 session 保持打开状态,过程是这样的:

第一张实时取景图
与凸轮的 1-oppen session
2-下载实时取景图片

第二张和下一张图片
1-下载实时取景图片

最后的实时取景图片
1-下载实时取景图片
2-释放凸轮

第一次,当我们使用一个简单的线程时,一切正常,但如果在其他调用之后,创建了新线程,并且两个线程尝试进行实时取景(一个打开的 session 和另一个想与摄像头互动),tomcat 被卡住了......

结论
我们遇到的问题是,当 java 与可视层通信时,Tomcat 创建了很多线程,但是如果线程想要访问摄像头并且 session 被另一个打开,tomcat 会被卡住...

问题
有一种方法可以使 apache tomcat 与特定线程一起工作以调用 java 方法???

注意
我们在一个线程中调试并尝试了 easy eclipse 中的所有方法,一切正常...

最佳答案

问题不在于 Tomcat 使用的线程。问题在于没有对相机的独占访问权限。您应该使用信号量(具有唯一许可),在使用相机打开 session 时获取许可,并在释放相机 session 时释放许可。

这样,所有线程都将被阻塞,直到它们获得许可。信号量可以处理超时或可以尝试获取许可,因此如果其他线程使用它,想要访问相机的线程仍然可以使用错误消息进行应答。

关于java - 在 Apache Tomcat 中使用唯一线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384369/

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