일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- concreteclass
- string
- abstractclass
- methodArea
- MSA
- 생성자
- start()
- overload
- override
- reference
- class
- object
- fuction
- eclipse
- super
- hamobee
- value
- constantnumber
- Polymorphism
- ALTER
- 객체형변환
- Hashtable
- 콘크리트클래스
- hashCode
- 추상클래스
- garbagecollection
- run()
- Vector
- arguments
- Eureka
- Today
- Total
뇌운동일지
[JAVA20] Thread, Wrapper class 본문
thread
: 어떤 일을 처리하는 논리적인 단위 ( 로직이나 함수실행 )
단일스레드 : 하나의 프로그램을 불러서 처리
멀티스레드 ( multi thread ) : 병렬적으로 동시에 실행
동시에 처리해야 하는 프로그램에 멀티스레드 활용, 자원을 공유한다
1. runnable interface를 적용(implements)하거나 thread class를 상속(inheritance, extends)받아야 함.
2. 동시성을 갖게하고 싶은 영역(=multi thread로 구현하고 싶은 영역)을 run() method로 감싼다.
run()은 구현만 가능, 호출은 불가
start()를 사용한다
start()를 통해 JVM내에 thread scheduler 에 등록, JVM이 run()을 호출해서 실행하게 된다
callback method : JVM에 의해 자동으로 호출되는 method ex) run()
run()을 바로 호출하면 실행은 되나, 멀티스레드로 구현되지 않기 때문에 의미가 없음
Thread class는 Runnable interface의 구현 클래스이다.
Runnable interface에는 run()의 추상메서드만 있음.
start()를 사용하기 위해서는 Thread class가 필요하다.
동시성
sleep()
우선순위 : 특정스레드에 우선권을 부여
setPriority(순위) // 1(낮음) ~10(높음)
1 == MIN_PRIORITY
5 == NORM_PRIORITY
10 == MAX_PRIORITY
동시성과 우선순위를 함께 사용해서는 안됨
synchronized (동기화)
: 2개 이상의 thread가 동시에 접속하는 것을 방지함
멀티쓰레드를 적용했을 때 동시성이 커져서 발생하는 문제를 방지하기 위해
1. 객체변수
2. 함수
두 가지에서만 synchronized 적용가능
기본형은 wrapper class를 활용해서 객체변수로 만든 다음 sychronized를 적용
http://tcpschool.com/java/java_api_wrapper
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'JAVA' 카테고리의 다른 글
[JAVA13_(1)] string의 method (0) | 2020.03.25 |
---|---|
[JAVA21] package (lang, util) (0) | 2020.03.25 |
[JAVA19] 상수(final), 예외처리(try, catch, finally, throws, throw) (0) | 2020.03.23 |
[JAVA18] 추상 클래스 (Abstract class) VS 인터페이스(Interface) (0) | 2020.03.23 |
[JAVA17] 상속 관계에서의 생성자, this, super (0) | 2020.03.20 |