(C#) .NET의 ThreadPool은 두개의 ThreadPool이 있습니다.

아티클의 제목처럼 CLR에는 두개의 ThreadPool이 존재 합니다. 첫번째 ThreadPool은 일반적인 Worker Thread가 사용되는 Pool이고 두번째 ThreadPool은 IoCompletionPort(IOCP)를 지원하는 Thread로 비동기 I/O 작업을 처리하기 위한 Thread 입니다. CLR ThreadPool에서 제공되는 I/O Thread는 흔히 File을 비동기로 읽고/쓰고 처리를 할때 FileStream에서 BeginRead/BeginWrite 구현 부분이 I/O Thread로 처리 됩니다. I/O Thread 커널에서 관리되는 스레드가 아니고 Worker Thread와 마찬가지로 C...

더보기

(JavaScript) 반복문에서 잘못된 동기 처리

시간이 오래 걸리는 여러 작업을 순차적으로 처리하고자 할때 fetch API나 axios 라이브러리를 통해 비동기로 요청하고 그 결과를 await을 통해 동기처리 하여 요청하는 상황이 있을 수 있습니다. 이럴 경우 흔히 반복문 안에서 비동기 요청 후 결과를 대기하는 식으로 처리할 수 있는데 이럴 경우 잘못된 상황에 대해 설명하고자 합니다.

더보기

(WPF) 비동기 바인딩 처리

이번글은 Microsoft WPF Doc 내용중 비동기 프로그래밍 - 비동기 MVVM 내용에 관련하여 간략한 예제와 설명 글 입니다. 다들 잘 아시는 얘기지만 WPF에서 바인딩을 통해 데이터를 표시할때 시간이 오래 걸리는 데이터는 비동기로 처리해야 합니다. 이런 상황에서 비동기로 처리되는 속성을 바인딩하여 처리 하는 방법에 대해 살펴봅니다.

더보기

(JavaScript) 다시 한번 기초 다지기! - JS 비동기 처리

자바스크립트는 기본적으로 단일 스택으로 싱글 스레드로 처리되서 동기적으로 처리됩니다. 이것이 어떤말인가 하면 자바스크립트가 엔진에 의해 처리 될때 호이스팅(hoisting) 처리후에 한줄 한줄씩 순차적으로 처리된다는 말입니다. 호이스팅(hoisting) 이란? 변수, 일반 함수 선언된것이 최상위로 올라가는 현상 그렇기 때문에 효율적으로 처리하기 위해서는 비동기 처리 방법이 필수적인 상황이 있는데 자바스크립트에서 비동기로 처리하는 방법을 하나씩 알아보도록 해보겠습니다.

더보기

(ASP.NET Core) 중복 요청 취소 처리하기

사용자가 브라우저를 통해 웹서핑을 하는데에 있어 네트워크 이상으로 일시적으로 느려지거나 서버측에 오래 걸리는 작업을 요청했을때 대부분 로딩중인 상태를 기다리지 못하고 연속적으로 새로고침을 누르거나 url요청을 다시 하게 됩니다. 이렇게 같은 요청이 중복으로 지속 요청된다면 웹 서버측은 모든 요청을 그대로 받아 들이고 WAS는 해당 요청을 중복으로 처리되어 상당히 비효율적인 결과가 나오게 됩니다.

더보기