<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片在线观看16女人| 成年人在线免费看视频| 国产精品免费无遮挡无码永久视频| 久久精品亚洲日本波多野结衣 | 成全视成人免费观看在线看| 99亚洲精品卡2卡三卡4卡2卡| 亚洲最大福利视频网站| 亚洲中文字幕无码中文字在线| 国产男女猛烈无遮挡免费视频| 成年在线观看网站免费| 最好免费观看高清在线 | 亚洲?V无码乱码国产精品| 免费在线观看的网站| 59pao成国产成视频永久免费| 成全视成人免费观看在线看| 一级A毛片免费观看久久精品| 亚洲成av人片在线天堂无| 亚洲免费一级视频| 亚洲日韩在线视频| 91久久亚洲国产成人精品性色 | baoyu122.永久免费视频| 一级特级女人18毛片免费视频| 亚洲国产午夜精品理论片在线播放| 亚洲综合偷自成人网第页色| 亚洲精品视频免费在线观看| 亚洲av网址在线观看| 亚洲欧洲日产国码久在线观看| 亚洲AV无码久久精品狠狠爱浪潮| 亚洲日韩精品无码专区网址| 在线日韩日本国产亚洲| 亚洲人成影院在线无码按摩店| 亚洲无码在线播放| 亚洲永久无码3D动漫一区| 国产AⅤ无码专区亚洲AV| 国产亚洲精品无码拍拍拍色欲| 国产精品亚洲高清一区二区| 久久精品国产精品亚洲艾草网美妙| 国产精品国产午夜免费福利看| 国产极品美女高潮抽搐免费网站|