在一次代码编写场景,需要post一些数据,同时携带获得的token,(但是token的有效时间是7200s),但是post需要很多次,很长时间,不可能2小时候中断程序,手动去获取token,这样效率太低下。
所以就想到,通过主线程维护一个Token(这个对象是我自己定义的),然后重新开辟子线程,让子线程去定时更新这个token。
首先写了子线程需要实现的功能:
public class TokenThread implements Runnable { public void run() {
while (true) {
try {
Thread.sleep(Config.TOKEN_VALID*1000);
} catch (InterruptedException e) {
e.printStackTrace();
} Main.callback();
}
} }
然后主线程:
public class Main { private static Token token = GetToken.getToken(); //其余变量方法 public static void callback(){
token = GetToken.getToken();
} public static void main(String[] args) {
//另一个线程定时更新token
new Thread(new TokenThread()).start();
// 其余逻辑
}
}