We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent ae2b4e4 commit 0cbd558Copy full SHA for 0cbd558
13-2. 부록A 동시성2/Readme.md
@@ -1,3 +1,19 @@
1
# 동시성2
2
-#####클라이언트/서버 예제에서는 단일 스레드로 동작하던 서버를 다중 스레드로 변경하는 것과 코드를 깨끗하게 변경하는 내용을 다룬다.
+##### 클라이언트/서버 예제에서는 단일 스레드로 동작하던 서버를 다중 스레드로 변경하는 것과 코드를 깨끗하게 변경하는 내용을 다룬다.
3
+
4
+## 클라이언트/서버 예제
5
+일반적으로 애플리케이션에서 많은 시간을 보내는 가능성은 크게 2가지이다.
6
+ - I/O : 소켓 사용, 데이터베이스 연결, 가상 메모리 스와핑 기다리기 등
7
+ - 프로세서 : 수치 계산, 정규 표현식 처리, 가비지 컬렉션 등
8
9
+일반적으로 프로그램이 프로세서 연산에 많은 시간을 보낸다면, 하드웨어를 추가하여 성능을 높이는 방식이 적합하다.
10
+프로세서 연산에 시간을 보내는 프로그램은 스레드를 늘린다고 해결할 수 있는 문제가 아니다.
11
+하지만 프로그램이 주로 I/O 연산에 시간을 보낸다면 동시성이 성능을 높여 줄 수 있다.
12
13
+단일스레드 시스템에서 다중 스레드 시스템으로 변환하고, 성능을 높이기 위해서는 다음과 같은 방법을 사용해야한다.
14
+ - 프로그램이 I/O에 많은 시간을 보내야 한다.
15
+ - 관련된 코드(스레드)를 분리시켜 여러개의 클래스로 분리(스레드를 관리하는 코드는 스레드만 관리하도록)해 단일 책임 원칙을 지켜야 한다.
16
17
18
+## 가능한 실행경로
19
0 commit comments