草庐IT

GPIO中断

全部标签

java - 如何刷新 Log4J2 中的异步记录器(使用中断器)

我通过设置使用Log4J2“使所有记录器异步”部分:-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector.https://logging.apache.org/log4j/2.x/manual/async.html我处理了很多日志,然后在退出前停止了附加程序:org.apache.logging.log4j.core.LoggercoreLogger=(org.apache.logging.log4j.core.Logger)logger;org.apache.logg

java - 使用 DBUnit 在数据库中断言更新数据的好策略是什么?

这里有一些(过度)简化的代码示例来描述我的单元测试方法。公司数据集.xmlCompanyDaoTest.java@TestpublicvoidtestUpdateCompany(){CompanyDaocompanyDao=newCompanyDao();IDatabaseConnectiondbConn=createConnection();IDataSetdataSet=createDataSet("CompanyDataSet.xml");DatabaseOperation.CLEAN_INSERT.execute(dbConn,dataSet);companyDao.updat

java - 用于 UNIX sys/classes/gpio 文件的 NIO watchservice

是否可以在/sys/class/gpio/gpioX设备树中的文件上设置JAVANIOWatchService以监督那里的变化?直接从Java中检测GPIO文件(即GPIO输入)的变化是个不错的主意,但我担心这不受支持。确认它不受支持(可能还有原因)就足够了。 最佳答案 Java7NIOFileWatcher的linux实现使用inotify。Inotify是一个linux内核子系统,用于通知文件系统更改。它有限制并且不适用于/proc、/sys和网络共享。请阅读inotifylimitationsonwiki:Inotifydoe

java - 有没有办法让线程知道哪个线程中断了它?

有没有办法让线程知道哪个线程中断了它?例如:...if(isInterrupted()){//look-upthethreadthatinterruptedthis//actaccordingly}Thread没有显示任何内容。//========================编辑:这不是我正在寻找的消息或事件机制。但是,这看起来很原始。一种获取类类型、线程组或可能只是中断优先级的方法线程会携带一些信息来处理。典型的用途是系统关闭——打断它们让它们脱离它们的状态阻塞方法,我现在想不出其他方法了。 最佳答案 Isthereawayf

java - 如何中断 IMAP 的 IDLE?

我正在使用JavamailAPI连接到我的IMAP服务器。javax.mail.Folder.idle()一切正常method.当收到新邮件时,我的监听器会被调用。但是问题是永远处于空闲状态,我该如何中断它?如何在不终止Java程序的情况下真正停止监听?我试过在空闲线程上调用Thread.interrupt()。什么都没发生。我的想法用完了。 最佳答案 对该文件夹执行任何操作(从另一个线程)将导致idle()方法立即返回。所以如果你想强行中断它,只需从一个新线程调用close()即可。

java - 是否可以中断 ExecutorService 的特定线程?

如果我有一个ExecutorService并向其提供Runnable任务,我可以选择一个并中断它吗?我知道我可以取消返回的Future(也提到了Here:how-to-interrupt-executors-thread),但是我怎样才能引发InterruptedException。Cancel似乎没有这样做(尽管它应该通过查看源代码来实现,也许OSX实现不同)。至少这个片段不会打印“它!”也许我误解了什么,不是自定义可运行程序导致异常?publicclassITTest{staticclassSth{publicvoiduseless()throwsInterruptedExcept

java - "This GPIO pin already exists:"GPIO 1 第二次出现异常

我正在使用Raspberrypi和java来使用pi4j使LED闪烁,一切都已清除并且工作正常,LED按照代码闪烁但是当我第二次运行时它会导致以下错误,我搜索了很多有很多相同的问题没有明确的答案如何解决它,任何帮助将不胜感激finalGpioControllergpio=GpioFactory.getInstance();finalGpioPinDigitalOutputpin=gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01,"PinLED",PinState.HIGH);System.out.println("lightis:ON");

Java:当被另一个线程中断时,如何在线程上捕获 InterruptedException?

我正在开发一个多线程应用程序来连接到外部服务器-每个服务器都在单独的线程上-并且在有输入之前将被阻塞。其中每一个都扩展了Thread类。为了便于解释,我们称这些为“连接线程”。所有这些连接线程都存储在并发HashMap中。然后,我允许调用RESTfulWeb服务方法来取消任何线程。(我使用的是Grizzly/Jersey,所以每次调用都是一个单独的线程。)我检索特定的连接线程(从hashmap)并调用它的interrupt()方法。那么,问题来了,在连接线程中,我如何捕获InterruptedException?(当连接线程被外部RESTful命令停止时,我想做一些事情。)

java - 你能用 Future.cancel(true) 中断 BufferedReader.readLine() 吗?

假设我启动了一个线程并且我有这样的东西:...//initiateallthesocketconnectionfuture=executor.submit(newRunnable(){publicvoidrun(){......while((str=in.readLine())!=null){//dosomethinghere}});executor是一个ExecutorService对象,in是一个BufferedReader对象我知道您可以关闭来自不同线程的套接字来中断该线程。但是当我尝试使用future.cancel(true)方法时,即使它返回true,线程似乎仍在运行,有人知

java - Java 中有什么方法可以记录*每个*线程中断吗?

每次调用Thread.interrupt()时,我都想以某种方式进行记录,记录哪个线程发出调用(及其当前堆栈)以及识别有关哪个线程被中断的信息。有没有办法做到这一点?搜索资料,看到有人提到实现安全管理器的可能性。这是可以在运行时完成的事情(例如,在Applet或WebStart客户端中),还是您需要使用已安装的JVM来执行此操作?或者有更好的方法吗? 最佳答案 作为一个快速技巧,这比我想象的要容易很多。由于这是一个快速的hack,我没有做一些事情,比如在取消引用数组之前确保堆栈跟踪足够深等。我在我签名的Applet的构造函数中插入了