21.05.07 기록
스프링 입문을 위한 자바 객체 지향의 원리와 이해- 멀티 스레드(Multi Thread)와 멀티 프로세스(Multi Process)의 T 메모리 구조와 메모리 사용
- Servlet은 요청당 프로세스일까? 요청당 스레드일까?
- 멀티 스레드 환경에서 전역 변수를 사용했을 경우의 문제점과 보완
- Thread 클래스의 run(), start(), join()
-
- 10871 BufferedReader, StringBuilder, StringTokenizer 사용하여 푼 풀이
import java.io.*; import java.util.StringTokenizer; public class B10871 { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; try { st = new StringTokenizer(br.readLine(), " "); int N = Integer.parseInt(st.nextToken()); int X = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine(), " "); for(int i = 0; i < N; i++) { int j = Integer.parseInt(st.nextToken()); if(j < X) { sb.append(j).append(" "); } } System.out.println(sb); br.close(); } catch (IOException e) { e.printStackTrace(); } } } - 10871 BufferedReader, StringBuilder, StringTokenizer 사용하여 푼 풀이
스프링 입문을 위한 자바 객체 지향의 원리와 이해check!- 멀티 스레드(Multi Thread)와 멀티 프로세스(Multi Process)의 T 메모리 구조
-
- 멀티 스레드(Multi Thread)
- 스레드 개수만큼 스택 영역을 분할하여 사용한다.
- 하나의 T 메모리 안에서 스택 영역만 분할 사용하기 때문에 멀티 프로세스 대비 메모리를 적게 사용할 수 있다.
- 멀티 스레드(Multi Thread)
-
- 멀티 프로세스(Multi Process)
- 다수의 T 메모리 구조를 갖는다.
- 다수의 T 메모리 영역을 서로 침범할 수 없는 만큼 메모리 사용량이 크다.
- 멀티 프로세스(Multi Process)
-
-
서블릿은 요청당 스레드이다. (스레드 효율 > 프로세스 효율)
-
- 멀티 스레드 환경에서 전역 변수를 사용했을 경우 문제점과 보안
- 문제점 - 쓰기 가능한 전역 변수일 경우 스레드 안정성이 깨진다.
- 보완 - lock을 건다.
※’lock을 거는 순간 멀티 스레드의 장점은 버린 것과 같다.’ 라는데 왜???
- 멀티 스레드 환경에서 전역 변수를 사용했을 경우 문제점과 보안
- Thread 클래스: Thread
- 멀티 스레드(Multi Thread)와 멀티 프로세스(Multi Process)의 T 메모리 구조