비동기

    [C#] 멀티태스킹(Multitasking) - 2. 비동기(Asynchronously)

    [C#] 멀티태스킹(Multitasking) - 2. 비동기(Asynchronously)

    3. 비동기(Asynchronously) 실행 우선 어떻게 같은 시간에 동시적으로 여러 작업이 실행될 수 있는지를 알아보기 테스트 가능한 아래 3개의 메서드를 생성합니다. static void ThreadInfo() { Thread t = Thread.CurrentThread; Console.WriteLine($"스레드 Id: {t.ManagedThreadId}, 우선순위: {t.Priority}, 백그라운드: {t.IsBackground}, 태스크명: {t.Name ?? string.Empty}"); } static void MethodA() { Console.WriteLine("A실행시작"); OutputThreadInfo(); Thread.Sleep(5000); Console.WriteLine("A..

    [C#] 멀티태스킹(Multitasking) - 1. 프로세스(process), 스레드(thread), 태스트(task) 그리고 성능모니터링

    [C#] 멀티태스킹(Multitasking) - 1. 프로세스(process), 스레드(thread), 태스트(task) 그리고 성능모니터링

    멀티태스킹은 같은 시간에 더 많은 성능 향상과 확장성 그리고 Application을 통한 사용자 생산성을 향상할 수 있는 방안을 제공해 줄 수 있습니다. 1. 프로세스(process), 스레드(thread) 그리고 태스트(task) 프로세스는 하나의 프로그램이 될 수 있습니다. 반드시 하나의 프로그램이 하나의 프로세스가 된다는 것은 아니지만(필요하다면 하나의 프로그램에서 여러 프로세스를 생성할 수 있으므로) 통상 OS 단에서는 메모리에 할당되어 현재 실행 중인 프로그램을 하나의 프로세스로 관리하고 있습니다. 스레드는 프로그램 안에서 코드를 실행하는 주체를 의미합니다. 기본적으로 하나의 프로세스는 하나의 스레드를 가지는데 이 말은 한 번에 하나씩의 코드만 실행할 수 있다는 얘기가 되므로 같은 시간에 여러 ..

    [Kotlin] AsyncTask

    [Kotlin] AsyncTask

    Task는 작업의 단위를 의미합니다. 프로그램에서는 내부에서 처리되는 하나의 로직을 의미할 수도 있습니다. 아주 좁은 의미에서는 var i = 10 + 10 과 같은 간단한 구문조차도 하나의 Task가 될 수 있습니다. Task에는 동작하는 방식에 따라 동기와 비동기로 구분될 수 있는데 동기는 하나의 Task가 처리 중이면 다른 Task는 모두 기다려야 하는 방식이며 비동기는 여러 가지 Task가 동시적으로 작동할 수 있고, 작업이 끝나면 다른 Task가 종료되길 기다리지 않고 바로 다음 작업을 진행할 수 있다는 차이가 있습니다. AsyncTask는 비동기 Task를 의미하며 스레드와 핸들러를 하나로 묶어 비동기적으로 Thread를 구현할 수 있습니다. AsyncTask의 동작에 관한 간단한 에제를 만들..