feat: initial commit - HJHA game server full source
6 major server modules (PdkFriendServer/GlobalSever/ServerCore/GameModule/GameNetModule) + game logic (GameFix/GameDAL/ServerData) + network layer (NetWorkMessage) + data layer (ObjectModel) + utilities (MrWu/Core/Config/CloudAPI/dll) + adapters (zyxAdapter/base) .NET 8.0 C# solution, 16 projects, 958 source files
This commit is contained in:
47
ServerCore/Core/ListPool.cs
Normal file
47
ServerCore/Core/ListPool.cs
Normal file
@ -0,0 +1,47 @@
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Core
|
||||
{
|
||||
public class ListPool<T>
|
||||
{
|
||||
private readonly Queue<List<T>> Queues = new Queue<List<T>>();
|
||||
|
||||
public List<T> Get()
|
||||
{
|
||||
if (Queues.Count > 0)
|
||||
{
|
||||
return Queues.Dequeue();
|
||||
}
|
||||
|
||||
return new List<T>();
|
||||
}
|
||||
|
||||
public void Recycle(List<T> list)
|
||||
{
|
||||
list.Clear();
|
||||
Queues.Enqueue(list);
|
||||
}
|
||||
}
|
||||
|
||||
public class ConcurrentListPool<T>
|
||||
{
|
||||
private readonly ConcurrentQueue<List<T>> Queues = new ConcurrentQueue<List<T>>();
|
||||
|
||||
public List<T> Get()
|
||||
{
|
||||
if (Queues.TryDequeue(out var list))
|
||||
{
|
||||
return list;
|
||||
}
|
||||
|
||||
return new List<T>();
|
||||
}
|
||||
|
||||
public void Recycle(List<T> list)
|
||||
{
|
||||
list.Clear();
|
||||
Queues.Enqueue(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user