在一次代码编写场景,需要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 }