在一次代碼編寫場景,需要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 }
