事情是这样的:
Boss有很多个Task要做,请了n个Worker来为他工作,Boss取出一个Task给一个Worker,取出第二个Task给下一个Worker......直到每一个Worker都有Task。取得到Task的Worker就开始工作了,Boss会随时检查每个Worker的是否完成的当前的Task,如果完成了,就给他下一个Task,直到这些Task都分发完成,并且Worker都完成了手里的Task,到此就下班了。
1.Task是Boss分发给Worker的任务,就是Boss要实例化多个Task对象,每个Task对象要由Worker来调用里面的方法完成这个Task,所以要定义成interface,代码如下:
1.接下来我们定义Worker类,继承Thread类,重要的是他要持有一个Task对象,当工作开始了,就一直检查自己有没有Task,如果有就执行doTask()方法,完成后释放Task对象,代码如下:
3.继续完成Boss类,继承Thread类,主要作用是实现Task,分发给Worker,首先要定义n个Worker对象,制定任务(getTask方法),run方法里实现任务分发。现在的任务是这样的:从1输出到500,共500个Task,代码如下: