Thread 8

C#/ Task와 Thread 클래스 비교 설명

1. Thread:명시적 스레드 관리: Thread 클래스를 사용하면 명시적으로 새로운 스레드를 생성하고 작업을 처리할 수 있습니다.오래된 방식: Thread는 기본적인 스레드 관리 기능을 제공하지만, 직접적인 스레드 생성 및 관리가 필요하므로 복잡한 코드가 될 수 있습니다.스레드 풀 미사용: Thread는 **스레드 풀(Thread Pool)**을 사용하지 않으며, 매번 새로운 스레드를 생성합니다. 이는 자원 관리 측면에서 비효율적일 수 있습니다.Thread t = new Thread(() => DoSomething());t.Start();   2. Task:고수준 비동기 프로그래밍: Task는 .NET에서 비동기 작업을 쉽게 관리할 수 있도록 도와주는 고수준의 비동기 처리 방식입니다.스레드 풀 사용:..

프로세스(Process)와 스레드(Thread) 비교

프로세스, 멀티프로세스, 스레드 및 멀티스레드에 대해 자세히 설명하겠습니다. **프로세스 (Process):** - 프로세스는 실행 중인 프로그램의 인스턴스를 나타냅니다. 각 프로세스는 독립적인 메모리 공간, 실행 상태 및 시스템 리소스(파일, 소켓, 등)를 가집니다. - 프로세스는 운영 체제 수준에서 관리되며, 각 프로세스는 고유한 프로세스 ID(PID)를 가지고 있어 식별됩니다. - 프로세스 간 통신은 일반적으로 IPC(Inter-Process Communication) 메커니즘을 통해 이루어집니다. **멀티프로세스 (Multiprocessing):** - 멀티프로세스는 여러 독립적인 프로세스가 동시에 실행되는 것을 의미합니다. 각 프로세스는 독립적인 메모리 공간을 가지며, 서로 완전히 격리되어 있습..

Etc 2023.10.27

C#/ 보충 1(객체, 스레드, 컬렉션스)

# 객체 생성 using System; namespace ConsoleApp1 { public class Univ { private string[] name; private string[] sex; private int[] age; public int[] Age { get { return age; } set { age = value; } } public string[] Sex { get { return sex; } set { sex = value; } } public string[] Name { get { return name; } set { name = value; } } } } *Java랑 비교해 보면, C#은 키워드로 get,set 이 프로퍼티로 사용한다. # 스레드 및 컬렉션스 활용 using S..

C# / 동기(async), 비동기(await), 병렬(parallel) 처리

# 동기, 비동기, 그리고 병렬 처리 다양한 방식으로 작업을 처리하고 성능을 최적화하는 데 도움을 줍니다. 각각의 처리 방식을 비교하여 설명하겠습니다: 1. 동기 처리 (Synchronous): - 동기 처리는 작업이 순차적으로 실행되는 방식입니다. 즉, 한 작업이 완료되기를 기다린 다음 다음 작업을 수행합니다. - 일반적으로 단일 스레드에서 작업이 처리되며, 한 작업이 끝나야 다음 작업을 수행할 수 있습니다. - 동기 처리는 간단하고 예측 가능하지만, 대규모 또는 시간이 오래 걸리는 작업에서는 성능 문제가 발생할 수 있습니다. 2. 비동기 처리 (Asynchronous): - 비동기 처리는 작업이 병렬적으로 실행되는 방식으로, 다른 작업이 진행 중일 때 다른 작업을 시작할 수 있습니다. - 비동기 키워..