프로세스 (process) => 현재 실행중인 응용프로그램의 실행단위
foreground process / background process
쓰레드 (Thread)
프로세스보다도 더 작은 실행 단위 이다. 즉 응용프로그램 내부에서 실행되는 최소 실행 단위이다.
IE(프로세스) 웹브라우저 => 특정 사이트에 접속
1) 홈페이지를 보여주는 역할, 문자, 동영상, 이미지등을 불러오는 역할
2) 여러개 존재하여 동시에 실행되는 것 처럼 보인다. 이것을 멀티 쓰레드 라고 한다.
이러한 창처럼 실시간으로 무언가를 뿌려주는것이 Thread의 일종이다.
또한 Thread의 역할을 해줄수있는 클래스가 존재하여 상속받아서 그 효과를 입힐수가 있다.
1.Thread역할을 해주는 쓰레드 클래스 존재(상속)(권장)
1)Thread클래스를 상속받음->run()때문에
2)run()작성->쓰레드의 기능을 부여
3)Thread객체를 생성->start()호출=>작동
2. Runnable 인터페이스를 상속받는 방법
**1)Runnable인터페이스를 상속받은 자식클래스를 작성
2)Thread클래스의 객체를 생성
**3)Thread클래스의 객체를 생성할때 생성자의 매개변수로써
Runnable인터페이스를 상속받은 자식클래스의 객체를 넣어줘서 사용
4)Thread클래스 객체의 start()호출
한개 이상의 쓰레드를 실행시킬때 동기화가 필요하는 경우가 있다.
Thread 동기화 => 싱글톤 패턴 => 객체를 하나만 생성할수가 있다. => 공유해서 사용하는 기법
여기서 동기화는
두개의 쓰레드가 하나의 데이터에 작업을 할때 하나의 쓰레드가 먼저 일을 다 처리할 동안 다른 쓰레드는 대기 상태로 유지할 수 있도록 해주는 기법 (ex 상담 -> 1인 상담 -> 대기)
쓰레드는 데이터를 공유할 수 있다.
동기화를 구현할땐
메소드명 앞에 synchronized 키워드를 써주면 된다. 이렇게되면
=> 메소드 자체가 설정 => 메소드 종료할때 기다려준다. => 다른 쓰레드는 대기상태에 존재 => 락을 거는 개념
트랜잭션 => commit()
2. 메소드 내부에 synchronized 예약어를 이용해서 특정 공유 객체를 설정
급여통장 => 공과금, 보험, 대출이자...-> 실시간으로 돈이 빠져 나간다.
이렇게 은행에서 돈이 빠져나갈수있도록 설정을 해놓을 수도있다.
싱글톤 패턴 => 객체를 하나만 생성하고 공유해서 사용하는 기법, 웹에서 사용하는 기법(메모리 절약 목적) 동시 접속을 효율적으로 사용하는 방법
인쇄 -> 프린터 -> 만약 28대 다수의 사용자가 => 프린터 한대를 (공유) => 여러명이 공유해서 사용가능함.
'JAVA-Spring' 카테고리의 다른 글
java Slf4j 사용 예제 및 설명 (0) | 2023.07.22 |
---|---|
JAVA 자바 [ 프로그래밍 ] ArrayList (0) | 2019.07.31 |
JAVA 자바 [ 프로그래밍 ] 인터페이스 종류, 컬렉션, 제너릭 (0) | 2019.07.31 |
JAVA 자바 [ 객체 지향 프로그래밍 ] 인터페이스 (0) | 2019.07.24 |
댓글