Sunnet 启动
思路:
将Sunnet 系统下的业务调度线程和网络事件线程全部启动起来
看懂:
你需要了解Sunnet 计算任务的调度时如何设计的
你需要了解Sunnet 网络事件线程时如何构思的
void Sunnet::Start(){
singal(SIGPIPE,SIG_IGN);
StartWorker(); //将所有的工作线程全部启动
StartSocket(); //将Epoll事件线程启动
}
void Sunnet::StartWorker(){
//设WORKER_NUM 为某个可配置的工人数量
for(int i = 0 ; i < WORKER_NUM; ++i){
//从堆区new出一个Worker 对象
Worker* worker = new Worker();
worker->id = i;
worker->eachNum = 1 << i;
thread* wt = new thread(*worker);
workers.push_back(worker);
workerThreads.push_bac(wt);
}
}
void Sunnet::StartSocket(){
SocketWorker* = new SokcetWorker();
socketWorker->Init();
sockThread = new thread(*socketWorker);
}