반응형 쓰레드3 스레드 생성 이후에 언제 Handle을 반환해야 할까? 스레드를 생성하고 반환받은 Handle 언제 반환해야 할까?스레드를 생성하고 나면 스레드에 대한 Handle을 반환받는다. 그리고 스레드 객체를 다 사용하고 나면 해당 핸들을 ::CloseHandle() 매소드를 통해서 반환한다. 그런데 IOCP 소켓 프로그래밍 관련으로 공부하다가 해당 예제를 발견했다.쓰레드를 생성하고 받은 hThread 핸들을 생성하자마자 바로 아래에서 ::CloseHandle() 매소드로 바로 반환한다. //클라이언트로부터 문자열을 수신함.hThread = ::CreateThread(NULL, //보안속성 상속 0, //스택 메모리는 기본크기(1MB) ThreadComplete, //스래드로 실행할 함수이름 (LPVOID)NULL, // 0, //생성.. 2024. 8. 7. 예제로 복습하는 C# 쓰레드 생성 C# 쓰레드 생성 System.Threading.Thread라는 클래스를 이용해서 쓰레드를 생성한다. Run()이라는 함수를 생성해서 메인 쓰레드에서 실행하고 별도로 생성한 쓰레드에서 동시에 실행시킨다. class Program { static void Main(string[] args) { new Program().DoTest(); } void DoTest() { // 새로운 쓰레드에서 Run() 실행 Thread t1 = new Thread(new ThreadStart(Run)); t1.Start(); // 메인쓰레드에서 Run() 실행 Run(); } void Run() { Console.WriteLine($"Thread#{Thread.CurrentThread.ManagedThreadId}: Beg.. 2023. 6. 1. C# 쓰레드(Thread)에 대해서 쓰레드(Thread)란 무엇인가 프로세스(Process)와 쓰레드(Thread)의 차이 프로세스와 쓰레드는 컴퓨터에서 동작하는 작업의 단위입니다. 각각의 작업은 독립적으로 실행되며, 다른 작업에 영향을 미치지 않습니다. 프로세스는 운영체제로부터 자원(메모리, 핸들 등)을 할당받으며, 쓰레드는 프로세스 내부에서 자원을 공유합니다. 각 프로세스는 독립된 주소 공간을 가지며, 서로의 메모리에 접근할 수 없습니다. 하지만 하나의 프로세스 내에서 여러 쓰레드가 동시에 실행될 경우, 서로의 메모리에 자유롭게 접근할 수 있습니다. 프로세스는 하나 이상의 쓰레드로 구성될 수 있습니다. 쓰레드는 하나 이상의 프로세스에 속해 있을 수 없습니다. 멀티 쓰레드(Multi-thread)와 단일 쓰레드(Single-thread).. 2023. 4. 19. 이전 1 다음