zoukankan      html  css  js  c++  java
  • java 子线程定时去更改主线程的变量

    在一次代码编写场景,需要post一些数据,同时携带获得的token,(但是token的有效时间是7200s),但是post需要很多次,很长时间,不可能2小时候中断程序,手动去获取token,这样效率太低下。

    所以就想到,通过主线程维护一个Token(这个对象是我自己定义的),然后重新开辟子线程,让子线程去定时更新这个token。

    首先写了子线程需要实现的功能:

     1 public class TokenThread implements Runnable {
     2 
     3     public void run() {
     4         while (true) {
     5             try {
     6                 Thread.sleep(Config.TOKEN_VALID*1000);
     7             } catch (InterruptedException e) {
     8                 e.printStackTrace();
     9             }
    10 
    11             Main.callback();
    12         }
    13     }
    14 
    15 }

    然后主线程:

      

     1 public class Main {
     2 
     3     private static Token token = GetToken.getToken();
     4 
     5     //其余变量方法
     6 
     7     public static void callback(){
     8         token = GetToken.getToken();
     9     }
    10 
    11     
    12     public static void main(String[] args) {
    13         //另一个线程定时更新token
    14         new Thread(new TokenThread()).start();
    15         //  其余逻辑
    16     }
    17 }
  • 相关阅读:
    团队展示
    第二次结对编程作业
    第12组 团队展示
    第一次结对编程作业
    第一次个人编程作业
    软工第一次作业
    第十章 创建计算字段
    第九章 用正则表达式进行搜索
    第八章 用通配符进行过滤
    第七章 数据过滤
  • 原文地址:https://www.cnblogs.com/dhName/p/11589286.html
Copyright © 2011-2022 走看看