工序任务的线程模拟

工序任务的线程模拟

工序任务指流水线式的工作场景,下一组工人的工件就是上一组工人的成品,一个活做完自己的部分就往下传,直到活完成为止。

为了编程方便简化了各个工序的工时,把它们都当成一样的了。

代码:
package  com.sitinspring.autotask.domain;

import  com.sitinspring.autotask.util.IdUtil;

/** */ /**
 * 任务类
 *
 * @date: 2008-2-25
 
*/

public   class  Task  implements  Comparable  {
    
private String id;

    
private String name;

    
// 完成需消耗的工时数
    private int manHour;

    
// 已经完成的工时数
    private int completed;

    
// 接受任务者
    private Worker worker;

    
public Task(String name, int manHour) {
        id 
= IdUtil.generateId();
        
this.name = name;
        
this.manHour = manHour;
        
this.completed = 0;
    }


    
// 任务是否完成
    public boolean isCompleted() {
        
return completed >= manHour;
    }


    
// 添加完成度
    public void addCompleted(int n) {
        completed 
+= n;

        
if (isCompleted()) {
            completed 
= manHour;

            
if (worker != null{
                System.out.println(
"任务"+this+"处理完毕!");
            }

        }

    }


    
public int compareTo(Object obj) {
        Task another 
= (Task) obj;
        
return (another.manHour) - this.manHour;
    }


    
public String toString() {
        
//return "任务名:" + name ;//+ " 工人名:" + worker.getName() + " 完成度:" + completed* 100 / manHour + "%";
        return name;
    }

    
    
public String getCompletedRatio() {
        
return " 完成度:" + completed    * 100 / manHour + "%";
    }


    
public int getCompleted() {
        
return completed;
    }


    
public void setCompleted(int completed) {
        
this.completed = completed;
    }


    
public int getManHour() {
        
return manHour;
    }


    
public void setManHour(int manHour) {
        
this.manHour = manHour;
    }


    
public String getName() {
        
return name;
    }


    
public void setName(String name) {
        
this.name = name;
    }


    
public String getId() {
        
return id;
    }


    
public Worker getWorker() {
        
return worker;
    }


    
public void setWorker(Worker worker) {
        
this.worker = worker;
    }


}

package  com.sitinspring.autotask.domain;

import  java.util.LinkedList;
import  java.util.List;

/** */ /**
 * 任务库类
 * 
 * 
@author sitinspring
 * 
 
*/

public   class  TaskLibrary  {
    
private List<Task> tasks;
    
private String name;

    
public TaskLibrary(String name) {
        
this.name=name;
        tasks 
= new LinkedList<Task>();
    }


    
// 添加单个任务
    public synchronized void addTask(Task task) {
        tasks.add(task);
        printTasks();
        notifyAll();
    }


    
// 添加多个任务
    public synchronized void addTasks(List<Task> moreTasks) {
        tasks.addAll(moreTasks);
        printTasks();
        notifyAll();
    }

    
    
/** *//**
     * 打印现有任务
     *
     
*/

    
public void printTasks(){
        
if(tasks==null){
            System.out.println(
"无任务");
            
return;
        }

        
        StringBuffer sb
=new StringBuffer();    
        
for(Task task:tasks){
            sb.append(task
+",");
        }

        System.out.println(name
+"现有任务:"+sb.toString());    
    }


    
public int getTaskSize() {
        
return tasks.size();
    }


    
// 工人领受任务
    public synchronized Task fetchTask(Worker worker) {
        
while (tasks.size() == 0{
            
try {
                System.out.println(name
+"中任务告罄");
                System.out.println(name
+"中工人:" + worker.getName() + "进入闲置状态");
                wait();
            }
 catch (InterruptedException ex1) {
                ex1.printStackTrace();
            }

        }


        Task task 
= tasks.get(0);
        System.out.println(
"工人:" + worker.getName() + ""+name+"中取得任务:" + task.getName());
        tasks.remove(task);
        
return task;
    }


    
public String getName() {
        
return name;
    }

}

package  com.sitinspring.autotask.domain;

import  com.sitinspring.autotask.util.IdUtil;

/** */ /**
 * 工人类,用于完成一个”活“
 * 
@author sitinspring
 *
 * @date 2008-2-25
 
*/

public   class  Worker  implements  Runnable  {
    
/** *//**
     * 工人ID
     
*/

    
private String id;

    
/** *//**
     * 工人名
     
*/

    
private String name;

    
/** *//**
     * 当前任务
     
*/

    
private Task currTask;

    
/** *//**
     * 未完成工件来源的库
     
*/

    
private TaskLibrary srcLib;
    
    
/** *//**
     * 已完成工件去向的库
     
*/

    
private TaskLibrary destLib;

    
// 工作速度
    private int speed;

    
public Worker(String name, int speed, TaskLibrary srcLib,TaskLibrary destLib) {
        id 
= IdUtil.generateId();
        
this.currTask = null;
        
this.name = name;
        
this.speed = speed;
        
this.srcLib = srcLib;
        
this.destLib=destLib;
        
        doWork();
    }


    
// 开始干活
    public void doWork() {
        Thread thread 
= new Thread(this);
        thread.start();
    }


    
// 真正干活
    public void run() {
        
while (true{
            
if (currTask == null || currTask.isCompleted()) {
                
if(currTask != null && currTask.isCompleted()){
                    System.out.println(
"工人:" + name + ""+destLib.getName()+"中放置任务:" + currTask.getName());
                    currTask.setCompleted(
0);
                    destLib.addTask(currTask);                    
                }
                
                
                currTask 
= srcLib.fetchTask(this);
                currTask.setWorker(
this);
            }


            
try {
                Thread.sleep(
1000);// 暂停一秒,模拟现实中的加工过程
                System.out.println("工人"+name+"正在处理任务" + currTask + "完成度"
                        
+ currTask.getCompletedRatio() + ".");
                currTask.addCompleted(speed);
            }
 catch (Exception ex) {
                ex.printStackTrace();
            }

        }

    }


    
public String getName() {
        
return name;
    }


    
public void setName(String name) {
        
this.name = name;
    }


    
public String getId() {
        
return id;
    }

}

执行过程:
package  com.sitinspring.autotask;

import  java.util.LinkedList;
import  java.util.List;

import  com.sitinspring.autotask.domain.Task;
import  com.sitinspring.autotask.domain.TaskLibrary;
import  com.sitinspring.autotask.domain.Worker;


public   class  Test {
    
public static void main(String[] args){
        TaskLibrary firstLib
=new TaskLibrary("第一料场(锯木)");
        List
<Task> tasks=new LinkedList<Task>();
        tasks.add(
new Task("1.欧式古典家具",14));
        tasks.add(
new Task("2.现代家具",10));
        tasks.add(
new Task("3.组装家具",9));
        tasks.add(
new Task("4.明代家具",17));
        tasks.add(
new Task("5.办公桌",8));
        tasks.add(
new Task("6.电脑桌",6));
        tasks.add(
new Task("7.公司摆架",5));
        tasks.add(
new Task("8.老板桌",11));
        
        
// 向锯木料场添加任务
        firstLib.addTasks(tasks);    
        
        
// 其余三个料场没有任务,等工人把上一个工序的活放过来才有
        TaskLibrary secondLib=new TaskLibrary("第二料场(刨木)");
        TaskLibrary thirdLib
=new TaskLibrary("第三料场(组装)");
        TaskLibrary fouthLib
=new TaskLibrary("第四料场(喷漆)");
        
        
// 打印四个料场当前任务
        firstLib.printTasks();
        secondLib.printTasks();
        thirdLib.printTasks();
        fouthLib.printTasks();
        
        
// 启动工人线程,开始干活
        new Worker("王进喜",1,firstLib,secondLib);
        
new Worker("时传详",2,firstLib,secondLib);
        
new Worker("张秉贵",3,secondLib,thirdLib);
        
new Worker("徐虎",4,secondLib,thirdLib);
        
new Worker("陈永贵",2,thirdLib,fouthLib);
    }

}

执行情况:
第一料场(锯木)现有任务: 1 .欧式古典家具, 2 .现代家具, 3 .组装家具, 4 .明代家具, 5 .办公桌, 6 .电脑桌, 7 .公司摆架, 8 .老板桌,
第一料场(锯木)现有任务:
1 .欧式古典家具, 2 .现代家具, 3 .组装家具, 4 .明代家具, 5 .办公桌, 6 .电脑桌, 7 .公司摆架, 8 .老板桌,
第二料场(刨木)现有任务:
第三料场(组装)现有任务:
第四料场(喷漆)现有任务:
工人:王进喜从第一料场(锯木)中取得任务:
1 .欧式古典家具
工人:时传详从第一料场(锯木)中取得任务:
2 .现代家具
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:张秉贵进入闲置状态
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:徐虎进入闲置状态
第三料场(组装)中任务告罄
第三料场(组装)中工人:陈永贵进入闲置状态
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
0 % .
工人时传详正在处理任务2.现代家具完成度 完成度:
0 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
7 % .
工人时传详正在处理任务2.现代家具完成度 完成度:
20 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
14 % .
工人时传详正在处理任务2.现代家具完成度 完成度:
40 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
21 % .
工人时传详正在处理任务2.现代家具完成度 完成度:
60 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
28 % .
工人时传详正在处理任务2.现代家具完成度 完成度:
80 % .
任务2.现代家具处理完毕
!
工人:时传详向第二料场(刨木)中放置任务:
2 .现代家具
第二料场(刨木)现有任务:
2 .现代家具,
工人:张秉贵从第二料场(刨木)中取得任务:
2 .现代家具
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:徐虎进入闲置状态
工人:时传详从第一料场(锯木)中取得任务:
3 .组装家具
工人张秉贵正在处理任务2.现代家具完成度 完成度:
0 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
35 % .
工人时传详正在处理任务3.组装家具完成度 完成度:
0 % .
工人张秉贵正在处理任务2.现代家具完成度 完成度:
30 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
42 % .
工人时传详正在处理任务3.组装家具完成度 完成度:
22 % .
工人张秉贵正在处理任务2.现代家具完成度 完成度:
60 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
50 % .
工人时传详正在处理任务3.组装家具完成度 完成度:
44 % .
工人张秉贵正在处理任务2.现代家具完成度 完成度:
90 % .
任务2.现代家具处理完毕
!
工人:张秉贵向第三料场(组装)中放置任务:
2 .现代家具
第三料场(组装)现有任务:
2 .现代家具,
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:张秉贵进入闲置状态
工人:陈永贵从第三料场(组装)中取得任务:
2 .现代家具
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
57 % .
工人时传详正在处理任务3.组装家具完成度 完成度:
66 % .
工人陈永贵正在处理任务2.现代家具完成度 完成度:
0 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
64 % .
工人时传详正在处理任务3.组装家具完成度 完成度:
88 % .
任务3.组装家具处理完毕
!
工人:时传详向第二料场(刨木)中放置任务:
3 .组装家具
第二料场(刨木)现有任务:
3 .组装家具,
工人:徐虎从第二料场(刨木)中取得任务:
3 .组装家具
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:张秉贵进入闲置状态
工人:时传详从第一料场(锯木)中取得任务:
4 .明代家具
工人陈永贵正在处理任务2.现代家具完成度 完成度:
20 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
71 % .
工人徐虎正在处理任务3.组装家具完成度 完成度:
0 % .
工人时传详正在处理任务4.明代家具完成度 完成度:
0 % .
工人陈永贵正在处理任务2.现代家具完成度 完成度:
40 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
78 % .
工人徐虎正在处理任务3.组装家具完成度 完成度:
44 % .
工人时传详正在处理任务4.明代家具完成度 完成度:
11 % .
工人陈永贵正在处理任务2.现代家具完成度 完成度:
60 % .
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
85 % .
工人徐虎正在处理任务3.组装家具完成度 完成度:
88 % .
任务3.组装家具处理完毕
!
工人:徐虎向第三料场(组装)中放置任务:
3 .组装家具
第三料场(组装)现有任务:
3 .组装家具,
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:徐虎进入闲置状态
工人时传详正在处理任务4.明代家具完成度 完成度:
23 % .
工人陈永贵正在处理任务2.现代家具完成度 完成度:
80 % .
任务2.现代家具处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
2 .现代家具
第四料场(喷漆)现有任务:
2 .现代家具,
工人:陈永贵从第三料场(组装)中取得任务:
3 .组装家具
工人王进喜正在处理任务1.欧式古典家具完成度 完成度:
92 % .
任务1.欧式古典家具处理完毕
!
工人:王进喜向第二料场(刨木)中放置任务:
1 .欧式古典家具
第二料场(刨木)现有任务:
1 .欧式古典家具,
工人:张秉贵从第二料场(刨木)中取得任务:
1 .欧式古典家具
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:徐虎进入闲置状态
工人:王进喜从第一料场(锯木)中取得任务:
5 .办公桌
工人时传详正在处理任务4.明代家具完成度 完成度:
35 % .
工人陈永贵正在处理任务3.组装家具完成度 完成度:
0 % .
工人张秉贵正在处理任务1.欧式古典家具完成度 完成度:
0 % .
工人王进喜正在处理任务5.办公桌完成度 完成度:
0 % .
工人时传详正在处理任务4.明代家具完成度 完成度:
47 % .
工人陈永贵正在处理任务3.组装家具完成度 完成度:
22 % .
工人张秉贵正在处理任务1.欧式古典家具完成度 完成度:
21 % .
工人王进喜正在处理任务5.办公桌完成度 完成度:
12 % .
工人时传详正在处理任务4.明代家具完成度 完成度:
58 % .
工人陈永贵正在处理任务3.组装家具完成度 完成度:
44 % .
工人张秉贵正在处理任务1.欧式古典家具完成度 完成度:
42 % .
工人王进喜正在处理任务5.办公桌完成度 完成度:
25 % .
工人时传详正在处理任务4.明代家具完成度 完成度:
70 % .
工人陈永贵正在处理任务3.组装家具完成度 完成度:
66 % .
工人张秉贵正在处理任务1.欧式古典家具完成度 完成度:
64 % .
工人王进喜正在处理任务5.办公桌完成度 完成度:
37 % .
工人时传详正在处理任务4.明代家具完成度 完成度:
82 % .
工人陈永贵正在处理任务3.组装家具完成度 完成度:
88 % .
任务3.组装家具处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
3 .组装家具
第四料场(喷漆)现有任务:
2 .现代家具, 3 .组装家具,
第三料场(组装)中任务告罄
第三料场(组装)中工人:陈永贵进入闲置状态
工人张秉贵正在处理任务1.欧式古典家具完成度 完成度:
85 % .
任务1.欧式古典家具处理完毕
!
工人:张秉贵向第三料场(组装)中放置任务:
1 .欧式古典家具
第三料场(组装)现有任务:
1 .欧式古典家具,
工人:陈永贵从第三料场(组装)中取得任务:
1 .欧式古典家具
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:张秉贵进入闲置状态
工人王进喜正在处理任务5.办公桌完成度 完成度:
50 % .
工人时传详正在处理任务4.明代家具完成度 完成度:
94 % .
任务4.明代家具处理完毕
!
工人:时传详向第二料场(刨木)中放置任务:
4 .明代家具
第二料场(刨木)现有任务:
4 .明代家具,
工人:徐虎从第二料场(刨木)中取得任务:
4 .明代家具
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:张秉贵进入闲置状态
工人:时传详从第一料场(锯木)中取得任务:
6 .电脑桌
工人陈永贵正在处理任务1.欧式古典家具完成度 完成度:
0 % .
工人王进喜正在处理任务5.办公桌完成度 完成度:
62 % .
工人徐虎正在处理任务4.明代家具完成度 完成度:
0 % .
工人时传详正在处理任务6.电脑桌完成度 完成度:
0 % .
工人陈永贵正在处理任务1.欧式古典家具完成度 完成度:
14 % .
工人王进喜正在处理任务5.办公桌完成度 完成度:
75 % .
工人徐虎正在处理任务4.明代家具完成度 完成度:
23 % .
工人时传详正在处理任务6.电脑桌完成度 完成度:
33 % .
工人陈永贵正在处理任务1.欧式古典家具完成度 完成度:
28 % .
工人王进喜正在处理任务5.办公桌完成度 完成度:
87 % .
任务5.办公桌处理完毕
!
工人:王进喜向第二料场(刨木)中放置任务:
5 .办公桌
第二料场(刨木)现有任务:
5 .办公桌,
工人:王进喜从第一料场(锯木)中取得任务:
7 .公司摆架
工人徐虎正在处理任务4.明代家具完成度 完成度:
47 % .
工人时传详正在处理任务6.电脑桌完成度 完成度:
66 % .
任务6.电脑桌处理完毕
!
工人:时传详向第二料场(刨木)中放置任务:
6 .电脑桌
第二料场(刨木)现有任务:
5 .办公桌, 6 .电脑桌,
工人:时传详从第一料场(锯木)中取得任务:
8 .老板桌
工人:张秉贵从第二料场(刨木)中取得任务:
5 .办公桌
工人陈永贵正在处理任务1.欧式古典家具完成度 完成度:
42 % .
工人王进喜正在处理任务7.公司摆架完成度 完成度:
0 % .
工人徐虎正在处理任务4.明代家具完成度 完成度:
70 % .
工人时传详正在处理任务8.老板桌完成度 完成度:
0 % .
工人张秉贵正在处理任务5.办公桌完成度 完成度:
0 % .
工人陈永贵正在处理任务1.欧式古典家具完成度 完成度:
57 % .
工人王进喜正在处理任务7.公司摆架完成度 完成度:
20 % .
工人徐虎正在处理任务4.明代家具完成度 完成度:
94 % .
任务4.明代家具处理完毕
!
工人:徐虎向第三料场(组装)中放置任务:
4 .明代家具
第三料场(组装)现有任务:
4 .明代家具,
工人:徐虎从第二料场(刨木)中取得任务:
6 .电脑桌
工人时传详正在处理任务8.老板桌完成度 完成度:
18 % .
工人张秉贵正在处理任务5.办公桌完成度 完成度:
37 % .
工人陈永贵正在处理任务1.欧式古典家具完成度 完成度:
71 % .
工人王进喜正在处理任务7.公司摆架完成度 完成度:
40 % .
工人徐虎正在处理任务6.电脑桌完成度 完成度:
0 % .
工人时传详正在处理任务8.老板桌完成度 完成度:
36 % .
工人张秉贵正在处理任务5.办公桌完成度 完成度:
75 % .
任务5.办公桌处理完毕
!
工人:张秉贵向第三料场(组装)中放置任务:
5 .办公桌
第三料场(组装)现有任务:
4 .明代家具, 5 .办公桌,
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:张秉贵进入闲置状态
工人陈永贵正在处理任务1.欧式古典家具完成度 完成度:
85 % .
任务1.欧式古典家具处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
1 .欧式古典家具
第四料场(喷漆)现有任务:
2 .现代家具, 3 .组装家具, 1 .欧式古典家具,
工人:陈永贵从第三料场(组装)中取得任务:
4 .明代家具
工人王进喜正在处理任务7.公司摆架完成度 完成度:
60 % .
工人徐虎正在处理任务6.电脑桌完成度 完成度:
66 % .
任务6.电脑桌处理完毕
!
工人:徐虎向第三料场(组装)中放置任务:
6 .电脑桌
第三料场(组装)现有任务:
5 .办公桌, 6 .电脑桌,
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:徐虎进入闲置状态
工人时传详正在处理任务8.老板桌完成度 完成度:
54 % .
工人陈永贵正在处理任务4.明代家具完成度 完成度:
0 % .
工人王进喜正在处理任务7.公司摆架完成度 完成度:
80 % .
任务7.公司摆架处理完毕
!
工人:王进喜向第二料场(刨木)中放置任务:
7 .公司摆架
第二料场(刨木)现有任务:
7 .公司摆架,
工人:张秉贵从第二料场(刨木)中取得任务:
7 .公司摆架
第一料场(锯木)中任务告罄
第一料场(锯木)中工人:王进喜进入闲置状态
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:徐虎进入闲置状态
工人时传详正在处理任务8.老板桌完成度 完成度:
72 % .
工人陈永贵正在处理任务4.明代家具完成度 完成度:
11 % .
工人张秉贵正在处理任务7.公司摆架完成度 完成度:
0 % .
工人时传详正在处理任务8.老板桌完成度 完成度:
90 % .
任务8.老板桌处理完毕
!
工人:时传详向第二料场(刨木)中放置任务:
8 .老板桌
第二料场(刨木)现有任务:
8 .老板桌,
工人:徐虎从第二料场(刨木)中取得任务:
8 .老板桌
第一料场(锯木)中任务告罄
第一料场(锯木)中工人:时传详进入闲置状态
工人陈永贵正在处理任务4.明代家具完成度 完成度:
23 % .
工人张秉贵正在处理任务7.公司摆架完成度 完成度:
60 % .
任务7.公司摆架处理完毕
!
工人:张秉贵向第三料场(组装)中放置任务:
7 .公司摆架
第三料场(组装)现有任务:
5 .办公桌, 6 .电脑桌, 7 .公司摆架,
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:张秉贵进入闲置状态
工人徐虎正在处理任务8.老板桌完成度 完成度:
0 % .
工人陈永贵正在处理任务4.明代家具完成度 完成度:
35 % .
工人徐虎正在处理任务8.老板桌完成度 完成度:
36 % .
工人陈永贵正在处理任务4.明代家具完成度 完成度:
47 % .
工人徐虎正在处理任务8.老板桌完成度 完成度:
72 % .
任务8.老板桌处理完毕
!
工人:徐虎向第三料场(组装)中放置任务:
8 .老板桌
第三料场(组装)现有任务:
5 .办公桌, 6 .电脑桌, 7 .公司摆架, 8 .老板桌,
第二料场(刨木)中任务告罄
第二料场(刨木)中工人:徐虎进入闲置状态
工人陈永贵正在处理任务4.明代家具完成度 完成度:
58 % .
工人陈永贵正在处理任务4.明代家具完成度 完成度:
70 % .
工人陈永贵正在处理任务4.明代家具完成度 完成度:
82 % .
工人陈永贵正在处理任务4.明代家具完成度 完成度:
94 % .
任务4.明代家具处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
4 .明代家具
第四料场(喷漆)现有任务:
2 .现代家具, 3 .组装家具, 1 .欧式古典家具, 4 .明代家具,
工人:陈永贵从第三料场(组装)中取得任务:
5 .办公桌
工人陈永贵正在处理任务5.办公桌完成度 完成度:
0 % .
工人陈永贵正在处理任务5.办公桌完成度 完成度:
25 % .
工人陈永贵正在处理任务5.办公桌完成度 完成度:
50 % .
工人陈永贵正在处理任务5.办公桌完成度 完成度:
75 % .
任务5.办公桌处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
5 .办公桌
第四料场(喷漆)现有任务:
2 .现代家具, 3 .组装家具, 1 .欧式古典家具, 4 .明代家具, 5 .办公桌,
工人:陈永贵从第三料场(组装)中取得任务:
6 .电脑桌
工人陈永贵正在处理任务6.电脑桌完成度 完成度:
0 % .
工人陈永贵正在处理任务6.电脑桌完成度 完成度:
33 % .
工人陈永贵正在处理任务6.电脑桌完成度 完成度:
66 % .
任务6.电脑桌处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
6 .电脑桌
第四料场(喷漆)现有任务:
2 .现代家具, 3 .组装家具, 1 .欧式古典家具, 4 .明代家具, 5 .办公桌, 6 .电脑桌,
工人:陈永贵从第三料场(组装)中取得任务:
7 .公司摆架
工人陈永贵正在处理任务7.公司摆架完成度 完成度:
0 % .
工人陈永贵正在处理任务7.公司摆架完成度 完成度:
40 % .
工人陈永贵正在处理任务7.公司摆架完成度 完成度:
80 % .
任务7.公司摆架处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
7 .公司摆架
第四料场(喷漆)现有任务:
2 .现代家具, 3 .组装家具, 1 .欧式古典家具, 4 .明代家具, 5 .办公桌, 6 .电脑桌, 7 .公司摆架,
工人:陈永贵从第三料场(组装)中取得任务:
8 .老板桌
工人陈永贵正在处理任务8.老板桌完成度 完成度:
0 % .
工人陈永贵正在处理任务8.老板桌完成度 完成度:
18 % .
工人陈永贵正在处理任务8.老板桌完成度 完成度:
36 % .
工人陈永贵正在处理任务8.老板桌完成度 完成度:
54 % .
工人陈永贵正在处理任务8.老板桌完成度 完成度:
72 % .
工人陈永贵正在处理任务8.老板桌完成度 完成度:
90 % .
任务8.老板桌处理完毕
!
工人:陈永贵向第四料场(喷漆)中放置任务:
8 .老板桌
第四料场(喷漆)现有任务:
2 .现代家具, 3 .组装家具, 1 .欧式古典家具, 4 .明代家具, 5 .办公桌, 6 .电脑桌, 7 .公司摆架, 8 .老板桌,
第三料场(组装)中任务告罄
第三料场(组装)中工人:陈永贵进入闲置状态

代码下载:
http://www.blogjava.net/Files/junglesong/AutoTaskAdv20080225224755.rar

你可能感兴趣的:(工序任务的线程模拟)