使用Java实现单线程模式(3)

/**
 * access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。
 * 开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。
 * access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
 * 目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值
 * @author digdeep@126.com
 * 这是一个“不可变”对象的类定义
 */
public class AccessToken
{
    private final String access_token;
    private final long expire_in;        // access_token有效时间,单位为妙
   
    public AccessToken(String access_token, long expire_in)
    {
        this.access_token = access_token;
        this.expire_in = expire_in;
    }
   
    public String getAccess_token() {
        return access_token;
    }

public long getExpire_in() {
        return expire_in;
    }
   
}

其实几乎可以将每一种单实例模式都可以改造成一种单线程模式,改造方法就是让其 implements Runnable 或者 extends Thread 重写run()方法即可,因此不再举例...

很显然 单线程模式 适应的场景为:一个始终运行(死循环)的单个线程,比如一个永不停止的单个后台线程,在后台实现一些辅助功能,或者实现垃圾回收之类的功能。有不允许多个线程执行的要求。比如本文中的刷新微信的access_token,就没有必要用多个线程不断的去刷新了,而且这样会造成混乱,不知道那个线程获得的access_token才是正确的(因为后一个线程获得的access_token会覆盖前一个的)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2c7d9452abeaf573b8265628ced58432.html