/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.core.common.progress; import java.util.Map; import java.util.Random; import com.jinhe.tss.core.sso.context.ContextSupportThread; /** * <p> ProgressManager.java </p> * * 进度条执行入口。 */ public class ProgressManager { private Progressable progressExcutor; private long total; private Map<String, Object> params; public ProgressManager(Progressable progressExcutor, long total, Map<String, Object> params) { this.progressExcutor = progressExcutor; this.total = total; this.params = params; } public String execute() { final Progress progress = new Progress(total); final String code = new Random().nextInt() + "_" + System.currentTimeMillis(); ProgressPool.putSchedule(code, progress); ProgressThreadGroup group = new ProgressThreadGroup("threadGroup_" + code, progress); new ContextSupportThread(group, "thread_" + code) { public void runSupportContext() { progressExcutor.execute(params, progress); } }.start(); return code; } }