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 は、サーバーがアクティブである間、シリアル ポートから情報を読み取る必要があります。シリアル ポートから読み取るインスタンスは 1 つしかないため、これをスレッド内にスローしました。その後、データをすべてのクライアントで共有する必要があります。
ここで、このスレッドがシリアル ポートから読み取っているデータにアクセスしたいと思います。
これはできますか?はいの場合、どのように?