读书人

用观查者方式传递线程状态

发布时间: 2012-10-16 09:57:37 作者: rapoo

用观查者模式传递线程状态

场景,某action把任务分配给N个线程,当线程完成后通知action,action返回。

?

package com.koubei.Observable;import java.util.Observable;import java.util.Observer;public class Action implements Observer{    private int count;        public String execute() throws InterruptedException{                new Thread(new MadeCardThread(10,this)).start();        new Thread(new MadeCardThread(10,this)).start();        new Thread(new MadeCardThread(10,this)).start();        new Thread(new MadeCardThread(10,this)).start();                while(count != 40){            Thread.sleep(1000);        }        System.out.println("========= end =========");        return "success";    }        public void update(Observable o, Object arg) {        // TODO Auto-generated method stub        if(arg instanceof Integer){            count = count + (Integer)arg;        }    }        public static void main(String[] args) throws InterruptedException {        (new Action()).execute();    }}class MadeCardThread extends Observable implements Runnable {    private int count;            public MadeCardThread(int count,Observer observer){        this.addObserver(observer);        this.count = count;    }        public void run() {        // TODO Auto-generated method stub        for(int i=0; i<count; i++){            System.out.println(Thread.currentThread().getId() + " : " + i);        }        this.setChanged();        this.notifyObservers(count);    }    }

?

读书人网 >软件架构设计

热点推荐