package taskCenter;
import java.util.ArrayList;
import java.util.Stack;
public class TaskProcesserFactory {
static private TaskProcesserFactory factory = new TaskProcesserFactory();
private Stack processers = new Stack();
private ArrayList total_Processers = new ArrayList();
private int currProcessers = 0;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void process(Task t)
{
TaskProcesser employee = getProcesser();
if(employee != null)
employee.assignTask(t);
}
private TaskProcesserFactory()
{
for(;currProcessers<ApplicationConstant.MIN_PROCESSERS;currProcessers++)
{
TaskProcesser p = new TaskProcesser("Thread-"+ (currProcessers+1), this);
p.start();
addFactory(p);
total_Processers.add(p);
}
}
public TaskProcesser getProcesser()
{
TaskProcesser p = null;
try {
p =(TaskProcesser)processers.pop();
return p;
}
catch(Exception e)
{
p = newProcesser();
return p;
}
}
public void removeProcessor(TaskProcesser p)
{
processers.remove(p);
}
public boolean isAvaible()
{
boolean result = !processers.isEmpty();
if(!result)
{
result = !(currProcessers == ApplicationConstant.MAX_PROCESSERS);
}
if(!result)
System.out.println("Task Processer no extro processor");
return result;
}
private synchronized TaskProcesser newProcesser()
{
if(currProcessers < ApplicationConstant.MAX_PROCESSERS)
{
TaskProcesser p = new TaskProcesser("Thread-"+ (currProcessers+1),this);
p.start();
addFactory(p);
total_Processers.add(p);
currProcessers++;
//processers.push(p);
return p;
}
return null;
}
public void addFactory(TaskProcesser newProcessor)
{
processers.push(newProcessor);
}
static public TaskProcesserFactory getInstance()
{
return factory;
}
public void close()
{
System.out.println(total_Processers.size());
for(int i = 0; i< total_Processers.size(); i++)
{
TaskProcesser p = (TaskProcesser)total_Processers.get(i);
p.interrupt();
//p.notify();
System.out.println("Interupt :" + p);
}
try
{
notifyAll();
}
catch(Exception e)
{
;
}
}
}

huangtonglang
- 粉丝: 0
最新资源
- 自动驾驶规划控制常用算法c++代码实现
- C++ 实现自动驾驶规划与控制常用算法代码
- Delphi算法与数据结构精要
- 基于树莓派的自动驾驶小车,利用树莓派和tensorflow实现小车在赛道的自动驾驶 (Self-driving car based on raspberry pi(tensorflow))
- 自动驾驶Apollo源码注释.(annotated Apollo 1.0 source code)
- 基于树莓派与 TensorFlow 的赛道自动驾驶小车实现
- Udacity 自动驾驶系列课程第一期学习内容
- 轻量级LMS 2.0:基于博客的在线评估新方法
- 自动驾驶领域各类算法的实现方式及原理深度分析 自动驾驶相关各类算法的具体实现路径与原理解析 自动驾驶领域各类算法实现方法及核心原理分析 自动驾驶相关各类算法的实现流程与原理深度剖析 自动驾驶领域各类算
- Udacity 自动驾驶培训课程首期班
- 基于 carla-ros-bridge 在 carla 实现自动驾驶规划与控制
- Android studio 打包uniapp
- 机器学习(预测模型):犯罪新闻标题二元分类任务的数据集
- 基于 carla-ros-bridge 在 carla 实现自动驾驶规划与控制
- 使用 TensorFlow 与 OpenCV 模拟自动驾驶系统 基于 TensorFlow 和 OpenCV 的自动驾驶模拟实现 借助 TensorFlow 与 OpenCV 进行自动驾驶模拟 采用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
- 3
前往页