C# 4

[이것이 C#이다] Thread.sleep

중간중간 Thread.Sleep()을 사용하는 이유는 여러 가지가 있을 수 있습니다. Thread.Sleep()은 스레드가 일정 시간 동안 실행을 멈추고 CPU 자원을 다른 스레드에게 양보하게 만듭니다. 이를 사용하는 주요 이유는 다음과 같습니다:1. CPU 부하 감소 및 자원 관리프로그램이 자원을 과도하게 사용하는 것을 방지하기 위해서 Sleep()을 삽입합니다. 만약 스레드가 계속해서 작업을 반복적으로 수행하면 CPU 사용량이 높아질 수 있기 때문에, 불필요한 반복문이나 긴 대기 상태에서는 Sleep()으로 CPU 사용을 줄일 수 있습니다.2. 타이밍 제어 및 동기화특정 작업이 완료되기를 기다리거나 다른 스레드 또는 리소스가 준비될 때까지 일시적으로 대기해야 하는 경우가 있습니다. 예를 들어, 파일 ..

C# 2024.09.21

[이것이 C#이다] 멀티 프로세스 vs 멀티 스레드 관련 깨알지식ㅍ

GUI가 없는 프로세스, 즉 백그라운드 프로세스나 서버 프로세스와 같은 경우, 멀티프로세스 방식이 유용한 이유는 주로 다음과 같은 특성 때문입니다:1. 안정성 (Crash Isolation)멀티프로세스 방식에서는 각 작업이 별도의 프로세스에서 실행됩니다. 즉, 하나의 프로세스가 오류로 인해 종료되더라도 다른 프로세스에는 영향을 주지 않습니다. GUI가 없는 서버나 백그라운드 프로그램은 장기간 실행되는 경우가 많기 때문에, 하나의 프로세스가 실패할 때 전체 시스템에 영향을 주지 않는 것이 중요합니다. 멀티프로세스는 이러한 충돌 격리 기능을 제공합니다.2. 병렬성 (Concurrency)멀티프로세스 방식은 시스템의 다중 CPU 또는 코어를 효과적으로 활용할 수 있습니다. 각각의 프로세스는 다른 코어에서 병렬..

C# 2024.09.21

[용어정리] 정적메소드와 인스턴스 메소드

정적 메소드(static method)와 인스턴스 메소드(instance method)의 차이는 메소드가 호출되는 방식과 그 메소드가 접근할 수 있는 데이터에 있습니다. 두 가지의 주요 차이점을 아래에 설명합니다.1. 정적 메소드 (Static Method)클래스에 속함: 정적 메소드는 클래스 자체에 속해 있으며, 특정 객체(인스턴스)를 생성하지 않고도 호출할 수 있습니다.static 키워드 사용: 정적 메소드를 정의할 때 static 키워드를 사용합니다.인스턴스 데이터에 접근 불가: 정적 메소드는 클래스의 인스턴스 변수(객체의 필드)에 접근할 수 없습니다. 대신, 클래스 변수(정적 변수)에만 접근할 수 있습니다.사용 예시: 정적 메소드는 주로 공통적인 동작을 처리할 때 사용됩니다. 예를 들어, 유틸리티..

C# 2024.09.21