⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctaskteam.h

📁 C/C++ 多任务下的数据结构与算法 (周伟明)华中科技大学出版社
💻 H
字号:
/*
 * Copyright (c) 2006-2008
 * Author: Weiming Zhou
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  
 */

/* 
 *	CTaskTeam.h
 *
 *	DESCRIPTION
 *		Module for Task Team class 
 *
 *	HISTORY
 *		06-08-2008	create by zhouweiming.
 *
 */
#ifndef __CTASKTEAM_H__
#define __CTASKTEAM_H__

#include "SingleList.h"
#include "Graph.h"

#define     DEFAULT_TASK_COUNT_IN_TASKTEAM      32

class CTaskTeam {
private:
    int     m_nMaxCount;
    int     m_nTaskCount;
    int     m_nThreadCount;

    TASK        **m_ppTaskArray;  //待分配给各个线程的任务数组
    SINGLELIST  **m_ppSingleList; //分配给各个线程的任务列表
    int         *m_pnDeltaArray;  //各个线程的误差数组

    int         FindMaxDelta();   //查找最大负数误差值

public:
    CTaskTeam();
    CTaskTeam(int nInitTaskCount);
    virtual ~CTaskTeam();

    void   AddTask(TASK *pTaskNode);
    void   AddTask(THREADFUNC TaskFunc, void *pPara, DWORD dwTaskTime);

    TASK * GetTask(int nPos); //获取m_ppTaskArray数组中的第nPos个元素
    TASK **GetTaskArray();    //获取m_ppTaskArray数组指针


    int GetTaskCount();

    void Schedule();   //将任务组内的所有任务平均分配给各个线程

    void Exec();       //并行执行分配好了的给各个线程的任务
};


void Edge_Destroy(void *p);


#endif //__CTASKTEAM_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -