본문 바로가기

programming | development/c#2

Task , Parallel, async, await 병렬처리 비동기 처리 차이? 병렬은 작업을 여러개로 나눠 수행하고 하나의 결과로 만드는것 비동기는 각자 작업하고 각자 결과 받기 System.Threading.Task.Task 인스턴스 생성시 Action 대리자(반환형을 갖지 않는 메소드, 익명 메소드, 무명 함수 등)를 넘겨받음 Action someAction = () => { Thread.Sleep(1000); }; Task myTask = new Task(someAction); // 비동기 호출 myTask.Start(); // 비동기 포출이 완료될때 까지 기다림 myTask.Wait(); Task.Run , Task //Task 생성, 실행 한번에 하기 Task.Run(() => { Console.WriteLine("어쩔티비"); }); // 반.. 2022. 1. 10.
Thread ,lock, Monitor 프로세스? 실행파일이 실행되어 메모리에 적재된 인스턴스 스레드? 운영체제가 CPU 에 시간을 할당하는 기본단위 멀티스레드 사용시 장점 - 높은 응답성 - 멀티프로세스 방식에 비해 멀티스레드 방식이 자원 공유가 쉬움. 코드 내 변수를 같이 사용하는것으로 데이터 공유 가능 - 이미 프로세스에 할당된 메모리 자원을 그대로 사용하므로 자원 할당 비용 지불하지 않아도 됨 단점 - 디버깅 - 자식스레드 하나 문제시 전체 프로세스 영향 - 너무 많은 스레드 사용시 작업간 전환이 비용을 많이 소모하므로 성능저하 스레드 상태변화 - Unstarted : 스레드 객체 생성 후 Start() 호출 전 - Running : 스레드 동작중 - Suspended : 스레드 일시 중단. Thread.Suspend()로 상태 돌입,.. 2022. 1. 9.