목록개발 일지/C# (6)
뽕구의 개발일지

안녕하세요.이번에는 C#으로 쓰레드의 데드락 개념과 쓰레드 간 동기화에 대해 알아보도록 하겠습니다. 데드락 개념과, lock, Monitor, Mutex 등 다룰 내용이 좀 있어서 글이 길어질 것 같습니다!천천히 따라와주세요~ 개발을 하다보면 2개 이상의 쓰레드를 돌리는 멀티쓰레딩을 하게 되는데요.멀티 쓰레드들이 서로 점유한 자원들에 대해 점유를 대기하며, 영원히 대기 상태에 빠지는 현상을 데드락(Deadlock)이라고 합니다. 이를 해결하려면 2개 이상의 쓰레드 동기화를 통해 해결할 수 있습니다.우선 데드락 발생부터 한번 알아봅시다. 데드락 Deadlock데드락은 이론적으로 아래 조건이 충족될 때 발생합니다. 상호 배제(Mutual Exclusion): 자원은 한 번에 하나의 스레드만 사용 가능.점유..

Thread 기초에 대해서 이전에 포스팅했습니다.글을 읽다보니, 신입때 쓰레드를 종료시키는데 애먹었던 기억이 났어요. 그리고 필수로 다루어야 할 내용이기도 한 것 같습니다.그리고 참고로 썸네일을 바꾸었어요 좀 더 깔끔한것 같네요 :) 이번에는 쓰레드를 종료시키는 방법에 대해서 포스팅하겠습니다.쓰레드 종료시키기가장 안전한 방법은 쓰레드가 실행하는 메서드를 다 실행하면 자동으로 종료가 됩니다.for, while 등 반복문이 종료 조건이 되어 끝나는 경우return을 만나는 경우별도로 종료를 시킬 필요가 없다면 일 끝나면 알아서 종료되게 냅두는게 가장 좋아요그치만 개발하다보면 분명히 쓰레드를 중지시켜야할 때가 있습니다. 안전한 방법과 불안전한 방법에 대해 알아보겠습니다.불안전한 종료 방법먼저 불안전한 종료 방..

안녕하세요. 이번에는 C#으로 쓰레드 Thread에 대해 알아보도록 하겠습니다.쓰레드 ThreadThread(쓰레드) 는 CPU가 작업을 수행하는 최소 단위의 실행 흐름입니다.운영체제 관점에서 하나의 프로세스는 하나 이상의 쓰레드를 가질 수 있으며, 이들 쓰레드는 같은 메모리 공간을 공유합니다.프로세스(Process): 실행 중인 프로그램 쓰레드(Thread): 그 프로그램 내부에서 실제로 일을 처리하는 실행 흐름즉, 한 프로그램(프로세스) 안에서도 여러 개의 작업을 동시에 처리하고 싶을 때, 그걸 가능하게 해주는 게 Thread입니다. 쓰레드 생성 방법 1C#에서는 System.Threading.Thread 클래스를 통해 간단히 스레드를 만들 수 있습니다. 기본 예시 코드를 작성해봤는데요.코드 설명은 ..

.cs을 찾을 수 없음System.IO.Ports 네임스페이스 하위의 SerialPort.cs를 사용한 코드에서 디버깅 중 아래와 같은 에러가 발생하였습니다. 복잡한 코드도 아닌 곳에서 디버깅 중 에러가 나서 당황했습니다ㅠㅠ 빠르게 해결한 방법 공유차 포스팅합니다. 해결 방법도구 → 옵션디버깅 → 기호 선택Microsoft 기호 서버 체크 해제 & 지정된 모듈만 로드 선택 후 옵션 창 닫기 저는 위 방법으로 빠르게 해결했습니다. 구글링해보니, 아래와 같은 방법도 존재합니다.링크 삽입합니다. https://learn.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2022 오늘은 디버깅 중 .cs를 찾을 수 없음 문제에 대한 해결..

클래스많은 객체지향 도서에서 클래스의 이해를 돕기 위해 붕어빵 틀과 붕어빵으로 비교하죠~ 클래스 == 붕어빵 틀인스턴스 == 붕어빵 (개체) 현실 세계의 붕어빵 틀을 클래스로 구현하여 붕어빵 개체를 계속 구워(생성)내는 것입니다. 객체지향의 클래스 타입은 속성과 행위 를 기본 구조로 가지게 됩니다.속성은 필드(=멤버 변수), 행위는 메소드(=클래스 함수) 입니다. 속성행위팥, 슈크림반죽하기, 붓기, 굽기, 확인하기, 꺼내기 대충 이렇게 속성과 행위를 나누어보았습니다. 팥과 슈크림이라고 붕어빵 틀이 나뉘어져있지는 않죠! C# 클래스 구조C#의 클래스도 참조 형식의 타입을 만드는데 사용됩니다. 다른 객체지향 언어와 기본적으로 동일한 구조이지만, 필요에 따라 Property 라고 하는 개념을 추가할 ..

C# 언어에서 사용되는 기본 자료형C#에서 사용하는 기본 자료형을 테이블로 정리하였습니다. C# 8.0 책을 참고해 C# 8.0 기준 자료형입니다.Microsoft 공식 C# 페이지에 가면 최신 C# 버전을 열람하실 수 있습니다. 현재 큰 차이는 없는것 같네요.(https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/integral-numeric-types) 정수 숫자 형식 - C# 참조 - C#각 정수 숫자 형식에 대한 범위, 스토리지 크기 및 용도에 대해 알아봅니다.learn.microsoft.com 정수형C# 형식범위크기.NET 형식sbyte-128 ~ 127부호 있는 8비트 정수System.Sbytebyte0..