<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    常用的多線程異步處理


    package cn.allinpalm.sns.app.web.point.action;

    import java.util.LinkedList;

    import org.apache.log4j.Logger;
    import cn.allinpalm.sns.app.web.constants.Config;
    import cn.allinpalm.sns.app.web.point.service.PointOptService;
    import cn.allinpalm.sns.app.web.util.ParamBean;

    public class Proccessor {

        
    private static Logger log = Logger.getLogger(Proccessor.class);

        
    class SubProc implements Runnable {

            LinkedList
    <ParamBean> list = new LinkedList<ParamBean>();

            
    void add(ParamBean pb) {
                
    synchronized (list) {
                    list.add(pb);
                    list.notify();
    //通知處理新任務
                }

            }


            
    public void run() {
                ParamBean pb 
    = null;
                
    while (true{
                    
    try {
                        
    synchronized (list) {

                            
    if (list.size() > 0{    //存在需要處理的任務
                                pb = list.remove(0);  //將任務移出隊列,并執行業務邏輯
                                UserOptAction.initPointUserOpt(pb);
                                
    if (pb != null && (pb.getOptway()).equals(Config.addPointOpt)) {

                                    PointOptService.userPointAdd(pb);
                                }
     else if (pb != null
                                        
    && (pb.getOptway())
                                                .equals(Config.consumePointOpt)) 
    {
                                    PointOptService.userPointConsume(pb);
                                }
                         
                                
                            }
     else {
                                list.wait();
    //等待任務
                            }

                        }


                    }
     catch (InterruptedException e) {
                        
    break;
                    }
     catch (Exception e) {
                        
    break;
                    }

                }


            }

        }


        
    //單態模式取得實例變量并初始化
        private static Proccessor instance = null;

        
    public static Proccessor getInstance() {
            
    if (instance == null{
                instance 
    = new Proccessor();
                instance.init();
            }

            
    return instance;
        }


        
    int max = 20;    //創建線程最大數目
        SubProc[] procs = null

        
    //初始化創建20個SubProc對象線程,并啟動
        private void init() {
            procs 
    = new SubProc[max];
            
    for (int i = 0; i < max; i++{
                procs[i] 
    = new SubProc();
                
    new Thread(procs[i]).start();
            }

        }


        
    //ParamBean為業務中參數的封裝Bean,利用hashCode來處理
        
    //將統一用戶的調用放到一個線程統一處理,類似將同一用戶的訪問排隊
        public void dispatch(ParamBean pb) {

            
    if (pb != null && procs != null{
                
    int i = pb.getUserid().hashCode() % max; 
                
    if (i < 0{
                    i 
    = -i;
                }

                procs[i].add(pb);  
    //加入線程中處理
            }

        }


    }

    aciont中調用:
        //ation中調用
        public ActionForward userPointAddOpt(ActionMapping mapping,
                ActionForm form, HttpServletRequest request,
                HttpServletResponse response) 
    throws Exception {

            ParamBean pb 
    = getParamBeanPk(request, response);                 
            Proccessor.getInstance().dispatch(pb);
            
        }

    posted on 2008-03-07 14:13 都市淘沙者 閱讀(2603) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    主站蜘蛛池模板: 亚洲av成人片在线观看| 亚洲成a人片在线网站| 麻豆一区二区三区蜜桃免费| 女人18毛片水真多免费播放| 欧洲 亚洲 国产图片综合| 69av免费观看| 狠狠色伊人亚洲综合网站色| 免费av欧美国产在钱| 亚洲无码一区二区三区| 精品国产免费观看| 免费高清A级毛片在线播放| 91亚洲导航深夜福利| 久久大香香蕉国产免费网站| 久久亚洲AV成人无码电影| 在线日本高清免费不卡| 91亚洲国产成人精品下载| 69式国产真人免费视频| 亚洲色一区二区三区四区| 在线视频免费国产成人| 亚洲美女激情视频| 无码人妻久久一区二区三区免费丨 | 2021在线永久免费视频| 亚洲毛片无码专区亚洲乱| 久久久久久久久免费看无码| 亚洲youwu永久无码精品| 亚洲色婷婷综合开心网| 国内精品免费在线观看| 亚洲国产电影在线观看| 国产成人高清精品免费软件| 一级免费黄色大片| 亚洲视频中文字幕在线| 日本免费人成黄页在线观看视频 | 亚洲色成人网站WWW永久四虎| 国产又黄又爽又猛的免费视频播放| 伊人久久国产免费观看视频| 国内一级一级毛片a免费| 99精品视频在线观看免费播放| 亚洲熟妇av一区二区三区下载| 日韩成全视频观看免费观看高清| 中文字幕无线码免费人妻| 亚洲免费闲人蜜桃|