Java中会话超时空闲处理多线程

Java中会话超时空闲处理多线程,java,multithreading,session,timeout,Java,Multithreading,Session,Timeout,我正试图了解Java中会话超时空闲处理多线程的情况 我有一个通过telnet进行通信的服务器和客户端应用程序,我需要检查用户是否在一段时间内键入(任何内容)、单击(任何位置)或移动鼠标 如果没有,用户将被提示一个对话框,询问他是否想继续会话。。。(如果没有,用户将在大约一分钟内自动注销。) 我的应用程序有多个线程。(-每个线程一个用户)。因此,我不知道如何认可这一最佳(和最简单的)方式 我知道这是一个广泛而牵强的问题,但我希望你们中的一些人能给我一个指向正确方向的指针或提示…:) 我希望有一种简

我正试图了解Java中会话超时空闲处理多线程的情况

我有一个通过telnet进行通信的服务器和客户端应用程序,我需要检查用户是否在一段时间内键入(任何内容)、单击(任何位置)或移动鼠标

如果没有,用户将被提示一个对话框,询问他是否想继续会话。。。(如果没有,用户将在大约一分钟内自动注销。)

我的应用程序有多个线程。(-每个线程一个用户)。因此,我不知道如何认可这一最佳(和最简单的)方式

我知道这是一个广泛而牵强的问题,但我希望你们中的一些人能给我一个指向正确方向的指针或提示…:)

我希望有一种简单的方法可以检查: (一位正在运行的伪代码:)


……或者类似的事情!:)

最简单的解决方案是java.lang.Thread类

您可以创建类并实现可运行的接口

public class Session implements Runnable{
    public void run(){
        //your code
    }
}
在主函数中,创建类线程并作为构造函数参数设置会话类的实例,在此重要参数之后是call method.start()

使用线程更方便的方法是java.util.concurrent.ExecutorService和java.util.concurrent.Executors

一些想法:
1.如果您想要一个持久计时器,那么可以使用类似的库,然后可以运行一段时间后编写的作业类。您可以取消计划的作业、重新计划等。。。
2.您不一定需要每个用户都有一个线程才能工作。计时器对象通常有内部线程来处理工作负载,可以使用Quartz或仅内存的Java计时器

public class Session implements Runnable{
    public void run(){
        //your code
    }
}
public static void main(String args[]){
    new Thread(new Session()).start();
}