multithreading
-
Java Multithreading [4] - 성능 최적화의 두 관점 - 지연 시간Java/Multi Threading 기초 2022. 8. 29. 08:46
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 4.1. 성능 최적화의 두 관점 - 지연 시간 프로그램의 성능을 최적화한다는 것은 구체적으로 무엇을 말하는 것일까요? 프로그램의 처리 속도를 높이는 것이 될 수도 있고, 통신의 레이턴시를 낮추는 것일 수도 있고, 정확한 응답값을 반환하는 것일 수도 있고, 정확한 조건에 동작하는 것일 수도 있고... 사실 '성능 최적화'라고만 말한다면 상황에 따라 수많은 정의가 적용될 수 있을 것 같습니다. 하지만 이번 포스팅에서는 성능을 관측하는 데에 대표적으로 쓰이는 두 가지 지표만을 공부해보려고 합니다. 첫번째는 지연 시간(latency), 두번째는 처리량(Throughput)입니다. 멀티스레..
-
Java Multithreading [3] - Thread#join() : Thread 간을 조정하는 방법Java/Multi Threading 기초 2022. 8. 23. 13:49
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 3. Thread#join() : Thread 간을 조정하는 방법 중 하나 지금까지 하나의 스레드가 여러 작업을 할 수 있다는 것과 여러 스레드가 동시에 동작할 수 있다는 것을 알게 되었습니다. 그렇다면 여러 스레드가 하나의 작업을 동시에 하는 것도 가능할까요? 결론부터 말하면 가능합니다. 흔히 경쟁조건Race Condition이라고 말하는 상황이죠. Race Condition에 대해 깊이 들어갈 것은 아니고요(깊이 알지도 못하고...😅), Race Condition의 여러 상황 중 하나를 예로 들어 join()을 설명하고자 합니다. 예를 들어 ThreadA와 ThreadB가 동시에 작업중이라고..
-
Java Multithreading [2] - Java에서 Thread를 종료하는 법Java/Multi Threading 기초 2022. 8. 18. 09:02
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 2. Java에서 Thread를 종료하는 법 Java에서 Thread를 만들고 시작하는 방법을 알아보았으니까 이제 종료하는 법도 알아봐야할 것 같아요. 왜냐면 어떤 경우에는 Thread가 자체적으로 종료되지 않는 로직을 가지고 있을 수 있는데, 단 하나의 Thread만 살아있더라도 어플리케이션은 종료될 수 없기 때문이에요. 실행시킬 수는 있지만 종료시킬 수 없다면 그 어플리케이션은 아주 큰 문제를 가지고 있는 거겠죠! 계속해서 실행되고 있다는 것은 메모리와, 운영체제의 자원과, 스케줄링 대상에 계속해서 들어간다는 것이고(상대적으로 다른 작업에 방해가 될 수도 있고), CPU 캐시를 차지하고 있어..
-
Java Multithreading [1] - Java에서 Thread를 생성하는 법Java/Multi Threading 기초 2022. 8. 16. 08:29
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 1. Java에서 Thread를 생성하는 법 Java로 프로그래밍을 하고 있는 누구나 Thread를 사용 중입니다. main() 메서드를 실행하는 main thread인데요. 이 thread는 메인 메서드가 실행되서 끝나는 블록을 만날 때까지의 실행을 담당합니다. 그러면 하나의 thread만 더 추가/실행할 수 있다면 multithreading을 구현하게 되는 거네요! Java에서는 thread를 실행하는 데에 필요한 속성과 동작들을 하나의 class로 JDK에서 관리하고 있습니다. Thread라는 이름의 클래스입니다. Thread t = new Thread();와 같은 식으로 새로운 스레드를 ..