쓰레드의 문제점과 동기화 컴퓨터는 위 그림처럼 프로그램을 수행을해서 위 계산을 보면 j에 30이 할당 된다고 예측할 수 있습니다. 그런데 만약 int i = 10 i+=10 의 연산 결과를 두개의 쓰레드에 의해 덧셈 연산을 한다고 했을때, 쓰레드는 코드영역을 공유하기 때문에 똑같은 코드를 2번 작업하여 시스템 성능을 저하 시키게 됩니다. 동기화 *임계영역(critical-section): 둘이상의 쓰레드에 의해서 공유되는 메모리 공간에 접근하는 코드영역 동기화: 1) 공유된 메모리에 둘 이상의 쓰레드가 동시에 접근하는 것을 막는 행위 2) 둘 이상의 레드 실행순서를 컨트롤 하는 행위
1. 쓰레드의 생성 프로세스와 쓰레드의 비교 *프로세스의 특징 - 프로세스는 두 개의 컴포넌트로 나뉘어지는 복잡한 개체입니다. 프로세스안에 여러 개의 쓰레드가 있다고 했을때, 쓰레드의 집합과 자원의 집합으로 나뉘게 되고 여기서 수행 유닛은 쓰레드이고, 프로세스는 쓰레드의 수행 환경을 제공합니다. 그리고 쓰레드 ID를 가지고 있습니다. 프로세스를 생성하게 되면 쓰레드가 프로세스안에 생성되게 되며, 파일 테이블과 메모리영역과 같은 자원의 집합이 있습니다. 이때 쓰레드가 1개 더 생겼다고 할 때 위 그림 처럼 자원 영역은 그대로 있고 쓰레드가 하나 더 생성 되고 이 쓰레드의 상태를 조절하는 시그널 마스트가 있고 또 개발적인 스택 영역이 하나 더 생기게 됩니다. 프로세스와 쓰레드 함수의 비교 ----------..
2. 쓰레드의 이용 쓰레드 VS 프로세스 쓰레드는 단일 프로그램 안에서 다수의 프로세스(실행흐름)을 두기 위한 메커니즘 쓰레드는 프로세스와 같이 완전히 독립적인 구조가 아닙니다. 즉, 쓰레드들 사이의 공유하는 요소가 있고 이는 문맥교환에 걸리는 시간이 프로세스에 비해 짧기 때문에 시스템 성능의 향상을 이유로 다수의 프로세스를 처리할 때 시스템 성능 저하를 막기위해 쓰레드를 사용한다고 저번 포스팅에서도 알아 봤습니다. 쓰레드와 프로세스의 차이점을 인지하고 메모리 구조를 살펴보도록 하겠습니다. 메모리 구조(프로세스 VS 쓰레드) *fork는 프로세스가 하나의자식 프로세스를 생성하는 함수입니다. 위의 그림을 예시로 하나의 부모 프로세스에서 두개의 자식프로세스를 생성한 경우의 메모리 구조를 살펴 봅시다. 프로그..
쓰레드 하나의 프로그램 안에서 둘 이상의 프로세스(또는 둘 이상의 프로그램흐름)을 만들기 위한것 문맥교환 -프로세스의 상태정보를 저장하고 복원하는 과정 -결과적으로 이 과정에 소요되는 시간을 줄이는 것 *프로세스란? '현재 실행중인 프로그램'을 의미 예) 둘 이상의 서로 다른 프로그램을 실행한다면 프로세스가 둘 이상 생성 - 웹 브라우저 실행해 웹 서핑을 하면서 뮤직플레이어를 실행해 음악을 듣는 경우 두 개의 프로세서 실행 하나의 프로그램이 둘 이상의 작업을 동시에 처리하기 위해서도 둘 이상의 프로세스가 필요 예1) 서버에서 다수의 유저가 접속해 동일한 프로그램을 사용하는 경우 예2) 멀티 유저 게임의 경우, 다수의 유저가 동시에 하나의 게임을 하는 경우 - 서버 입장에서는 한 개의 프로그램을 실행 하지..
- Total
- Today
- Yesterday
- map foreach
- map loop
- 쓰레드 사용 이유
- 연동
- java map loop
- IoC컨테이너
- apache tomcat 연동
- tomcat8.5
- 프로세스의 문제점
- 빈팩토리
- BEAN
- map iterator
- 쓰레드의 이용
- 어플리에키션 컨텍스트
- Page
- 스프링
- 메소드
- application
- tomcat8.x
- 디자인패턴
- 프로세스
- 설정정보
- parretn
- 패턴
- 프로세스의 특징
- map for문
- 빈
- apllication context
- apache2.x
- 쓰레드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |