java - session - 超时 - 空闲处理 Java 中的多线程

标签 java multithreading session timeout

我正在尝试了解 Java 中的 session - 超时 - 空闲处理多线程。

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

如果没有,系统将提示用户一个对话框,询问他是否要继续 session 。 ...(如果没有,用户将在下一分钟左右自动注销。)

我的应用程序有多个线程。 ( - 每个线程一个用户)。所以我不确定如何以最好(和最简单)的方式解决这个问题?

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

我希望有一种简单的方法可以检查: (一些即时的伪代码:)

if (idle = true){
timer.start();
if (timer > 120sec)
displayWaringJFrame("Continue Session?  - YES or NO ?)
displayTimer.start();
if (displayTimer > 30sec)
application.user.closeSession()

...或者类似的东西! :)

最佳答案

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

您可以创建类并实现 Runnable 接口(interface)

public class Session implements Runnable{
    public void run(){
        //your code
    }
}

在主函数中创建 Thread 类,并在调用 .start() 方法后作为构造函数参数设置 Session 类的实例

public static void main(String args[]){
    new Thread(new Session()).start();
}

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

关于java - session - 超时 - 空闲处理 Java 中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13002283/

相关文章:

java - 使用 javascript 提交按钮登录网站(使用 Java)

java - 从同一 JVM 运行 kafka 消费者和生产者时生产者速度缓慢

swift - 如何告诉主线程 URLSessionDataTask 已经完成

python - tf.train.MonitoredTrainingSession 参数

java - relativeLayout 无法转换为 android.text.TextWatcher

java - 如何用 ASM 重命名一个类并保持在同一个类加载器中?

c - 如何在 C 中取消引用并使用传递给 POSIX 线程的矩阵?

c - 树结构和线程

java - spring Controller 方法中相同类型的两个对象( session 和非 session )非 session 正在替换 session

django - 如何处理Django中不共享同一个域的前端