栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

更新USB设备列表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

更新USB设备列表

这个问题似乎是一半的设计,一半的实现。似乎您最担心要为Java
USB服务(例如jUSB)找到某种方式来服务系统中的热插拔事件,从而使您可以通过控制反转来调用一个事件,而不是运行一个线程来热情地和迭代地轮询系统中的线程。背景。

您所寻求的支持早在2005年就以JSR-80的形式实现,并且

javax-usb
在SourceForge上所有超出其商业支持的大型项目中似乎都可以继续使用。请注意,在他们的玩具示例中(
javax-usb-example/src/ShowTopology.java
),他们的 首选 模型仍然基于轮询。

但是,并不是所有的东西都丢失了!在的属性文件中

javax.usb
,我们发现:

#如果应使用轮询而不是等待热插拔通知。

#某些内核版本存在错误,并且只有在唤醒等待设备文件的线程之后几秒钟才更新设备节点。如果在中等负载到重负载的系统上没有出现热插拔事件,请使用轮询。

#注意,由于新的(buggy?)内核行为破坏了javax.usb,因此默认为true!

#如果您知道内核没有损坏,可以将其设置为false。

#com.ibm.jusb.os.linux.LinuxUsbServices.topologyUpdateUsePolling = true

在中

javax-usb/src/javax/usb/event/UsbServicesListener.java
,我们看到了用于设置USB事件侦听器的模型,当设备与系统连接或分离时,您可以继续使用该模型。外部没有提供有关此方法是否可行的文档
但是文档本身似乎已经有8年的历史了。

因此,可以合理地假设,尽管 理论上
存在这种支持,但它是滞后的,陈旧的,并且迫切需要社区进行更新。SO上的这个好的社区可以帮助解决这类问题,因此,我将直接指向项目本身作为结束。

目前,在存在增强的硬件或热插拔支持之前,轮询仍然是最好的解决方案。

(的附加参考实现

javax-usb



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508879.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号