upm_guru_kcp/Runtime/csharp-kcp/dotNetty-kcp/thread/ThreadMessageExecutor.cs

56 lines
1.2 KiB
C#
Raw Normal View History

2023-08-30 05:50:21 +00:00
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using base_kcp;
using dotNetty_kcp.thread;
namespace dotNetty_kcp.thread
{
/**
* 560 tps
*/
public class ThreadMessageExecutor:AbstratcMessageExecutor
{
private MpscArrayQueue<ITask> _queue;
private const int MAX_QUEUE_SIZE = 2 << 10;
/**
*
*/
public override void start()
{
_queue = new MpscArrayQueue<ITask>(MAX_QUEUE_SIZE);
base.start();
}
/**
*
* @return
*/
public override bool isFull()
{
return _queue.Count == MAX_QUEUE_SIZE;
}
protected override bool isEmpty()
{
return _queue.IsEmpty;
}
protected override bool TryDequeue(out ITask task)
{
return _queue.TryDequeue(out task);
}
protected override bool TryEnqueue(ITask task)
{
return _queue.TryEnqueue(task);
}
}
}