C++多线程实现静态队列进队、key随机匹配队列值
队列
template <class T>
class MyQueue
{
private:
int front;
int rear;
int maxSize;
T *array;
public:
MyQueue(void)
{
front = 0;
rear = 0;
maxSize = 500;
array = new T[maxSize];
}
~MyQueue(void)
{
delete[] array;
}
int getFront(void)
{
return this->front;
}
int getRear(void)
{
return this->rear;
}
T *getArray(void)
{
return this->array;
}
int getSize(void)
{
return this->maxSize;
}
void push(T obj)
{
try
{
if (isFull())
{
front = (front + 1) % maxSize;
}
array[rear] = obj;
rear = (rear + 1) % maxSize;
EnterCriticalSection(&cs);
printf("当前:rear=%d,front=%d,obj=%d的小黄人入队\n", rear, front, obj);
LeaveCriticalSection(&cs);
}
catch (const std::exception &e)
{
std::cerr << e.what() << '\n';
}
}
T pop()
{
if (!isEmpty())
{
try
{