#ifndef URL_QUEUE_H
#define URL_QUEUE_H
#include<windows.h
class UrlQueue
{
public:
static UrlQueue *GetInstance()
{
static UrlQueue urlQueue;//在此定义静态对象
return &urlQueue;
}
UrlQueue(int maxsize=1000)
{ // Initialize the list header to a MEMORY_ALLOCATION_ALIGNMENT boundary.
pListHead = (PSLIST_HEADER)_aligned_malloc(sizeof(SLIST_HEADER),
MEMORY_ALLOCATION_ALIGNMENT);
if( NULL == pListHead )
{
printf("Memory allocation failed.\n");
return;
}
InitializeSListHead(pListHead);
}
~UrlQueue()
{
_aligned_free(pListHead);
}
void Push(const char *val)//向队尾插入元素
{
int num = QueryDepthSList(pListHead);
while(num>=1000)
{
num = QueryDepthSList(pListHead);
if(num<1000) break;;
}
pProgramItem = (PPROGRAM_ITEM)_aligned_malloc(sizeof(PROGRAM_ITEM),MEMORY_ALLOCATION_ALIGNMENT);
if( NULL == pProgramItem )
{
printf(&#
在windows用原子操作实现消息队列
最新推荐文章于 2024-07-24 11:17:31 发布