For me
[Server] Thread Local Storage 본문
using System;
using System.Threading.Channels;
using System.Threading.Tasks;
namespace ServerCore
{
class Program
{
private static ThreadLocal<string> ThreadName = new ThreadLocal<string>(() =>
{
return $"My Name is {Thread.CurrentThread.ManagedThreadId}";
});
static void Thread1()
{
bool repeat = ThreadName.IsValueCreated;
if (repeat)
{
Console.WriteLine(ThreadName.Value + "(repeat)");
}
else
{
Console.WriteLine(ThreadName.Value);
}
}
static void Main(string[] args)
{
ThreadPool.SetMinThreads(1, 1);
ThreadPool.SetMaxThreads(3, 3);
Parallel.Invoke(Thread1,Thread1,Thread1,Thread1,Thread1);
ThreadName.Dispose();
}
}
}
각 쓰레드마다 접근하면 자신만의 공간에서만 저장
'Server > Study' 카테고리의 다른 글
[Server] Socket - Listener 분리 (0) | 2023.05.01 |
---|---|
[Server] Socket (0) | 2023.05.01 |
[Server] ReaderWriterLock (0) | 2023.04.26 |
[Server] AutoResetEvent (0) | 2023.04.26 |
[Server] Context Switching (0) | 2023.04.26 |