java callback recall

package net;

import java.util.ArrayList;
import java.util.List;

public class FZ {
	public static void main(String[] args) {
		System.out.println("----------------");
		Boss boss = new Boss();
		boss.startWork();

	}
}

interface Rule {
	public void reportResult(String data);
}

class Boss implements Rule {
	private List<Worker> workers = new ArrayList<Worker>();

	public void startWork() {
		for (int i = 0; i < 10; i++) {
			Worker worker = new Worker(this);
			workers.add(worker);
			worker.start();
		}
	}

	@Override
	public void reportResult(String result) {
		// TODO Auto-generated method stub
		System.out.println(result + " done!");
	}

}

class Worker extends Thread {
	private Rule rule;

	public Worker(Rule rule) {
		this.rule = rule;
	}

	public void doWork() {
		// TODO cost much time
		for (int i = 0; i < 100; i++) {
			System.err.println("worker" + Thread.currentThread().getId()
					+ " => do " + i);
		}
		rule.reportResult("worker" + Thread.currentThread().getId());
	}

	@Override
	public void run() {
		doWork();
	}

}

你可能感兴趣的:(callback)