gpt4 book ai didi

java - 从线程中读取数据(在 Servlet 中)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:02 25 4
gpt4 key购买 nike

我正在使用 ServletContextListener 创建一个新线程。

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.util.concurrent.*;

public class Port implements ServletContextListener {
private ExecutorService executor;

public void contextDestroyed(ServletContextEvent event) {
executor.shutdown();

}

public void contextInitialized(ServletContextEvent event) {
// start task
executor = Executors.newSingleThreadExecutor();
executor.submit(new Task()); //task should implement Runnable!

}
}

在此线程中,我正在从串行端口 (SerialPortEventListener) 读取数据。 task.class 应在服务器处于 Activity 状态的整个期间从串口读取信息。我把它放在一个线程中,因为只能有一个实例从串行端口读取;然后应将数据共享给所有客户端。

现在我想访问这个线程从串行端口读取的数据。

这能做到吗?如果是,那么如何?

最佳答案

例如,您可以将读取的数据存储在 servlet 上下文属性中。然后,从其他类中,您将从 servlet 上下文中获取属性:

public void contextInitialized(final ServletContextEvent event) { 
// start task
executor = Executors.newSingleThreadExecutor();
executor.submit(new Runnable() {
@Override
public void run() {
String data = readFromPort();
event.getServletContext().setAttribute("serialPortData", data);
}
});
}
}

关于java - 从线程中读取数据(在 Servlet 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15177456/

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