java线程的使用

  有时候我们会遇到需要很长时间的运行才能完成操作,此时我们的页面不可能一直处于等待状态,所以我们可以写一个线程,让它慢慢执行就行。

  下面是我在开发微信同步粉丝的时候的一个例子:

<span style="font-size:18px;">@RequestMapping(params = "loadMembers")
    @ResponseBody
    public AjaxJson loadMembers(WeixinMemberEntity weixinMember, HttpServletRequest request) {

        AjaxJson j = new AjaxJson();

        String accountId = ResourceUtil.getWeiXinAccountId();
        if (!StringUtil.isNotEmpty(accountId)) {
            message = "微信公众号不存在";
            j.setMsg(message);
            return j;
        }

        String accessToken = weixinAccountService.getAccessToken();
        Thread t = new UpdateThread(accessToken,accountId);
        t.start();

        message = "同步关注用户信息数据成功!请耐心等待";
        return j;
    }</span>

UpdateTread类:

<span style="font-size:18px;">public class UpdateThread extends Thread {

        private String accessToken;
        private String accountId;

        public UpdateThread(String _accessToken,String _accountId){
            this.accessToken = _accessToken;
            this.accountId = _accountId;
        }

        public void run() {
            logger.info("entering....");
            try {
<span style="white-space:pre">		</span>//方法体
                org.jeewx.api.wxuser.user.JwUserAPI.getAllWxuser1(logger,weixinGroupService,accessToken,accountId,weixinMemberService, null);

            } catch (Exception ex) {
                logger.error(ex.getMessage(), ex);
            }
        }
    }</span>

  一定要单独把run()方法单独一个类写出来,如果写在loadMember方法内部,会导致还没开始执行就被停掉,当时调了半天才弄出来。这时虽然UpdateTread类在另一个类的内部,但是编译时依然会出来一个独立的class文件。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值