일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바 기초
- 자바의 정석 기초편 ch2
- 스프링 mvc2 - 로그인 처리
- 자바 중급2편 - 컬렉션 프레임워크
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch14
- 2024 정보처리기사 수제비 실기
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch7
- 자바 중급1편 - 날짜와 시간
- 자바 고급2편 - 네트워크 프로그램
- 데이터 접근 기술
- 자바 고급2편 - io
- 스프링 mvc1 - 스프링 mvc
- 스프링 입문(무료)
- 스프링 mvc2 - 검증
- 스프링 트랜잭션
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch6
- 자바로 계산기 만들기
- 자바의 정석 기초편 ch9
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch12
- @Aspect
- 자바의 정석 기초편 ch4
- 람다
- 자바로 키오스크 만들기
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch1
- Today
- Total
목록자바 로드맵 강의/고급 1 - 멀티스레드와 동시성 (13)
개발공부기록

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. volatile, 메모리 가시성1) 예제1(1) VolatileFlagMainwork스레드는 MyTask를 실행하고 여기에는 runFlag를 체크하는 무한 루프가 있으며 runFlag 값이 false가 되면 무한 루프를 탈출하며 작업을 종료이후에 main 스레드가 runFlag의 값을 false로 변경하면 work 스레드가 무한 루프를 탈출하며 작업을 종료하기를 기대했지만 실행해보면 출력문만 출력되고 무한루프는 종료되지 않는 것을 확인할 수 있음** 주의!여기서는 volatile 키워드를 사용하지 않는 변수를 써야함무한 루프에 다른 코드가 있으면 다르게 동작함package..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 인터럽트1) 스레드의 작업을 중간에 중단 (1) ThreadStopMainV1특정 스레드의 작업을 중단하는 가장 쉬운 방법은 변수를 사용하는 것임여기서는 runFlag를 사용해서 work 스레드에 작업 중단을 지시할 수 있음작업 하나에 3초가 걸린다고 가정하고 sleep(3000)을 사용하였고 main 스레드에서 4초 뒤에 runFlag를 false로 변경하여 작업 중단을 지시함volatile 키워드는 뒤에서 자세히 설명하는데 지금은 단순히 여러 스레드에서 공유하는 값에 사용하는 키워드라는 정도로 알고 넘어가면 됨프로그램을 실행해보면 시작 후 4초 뒤에 main 스레드가 ..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 스레드 기본 정보(1) ThreadInfoMainThread 클래스가 제공하는 정보들 확인package thread.control;public class ThreadInfoMain { public static void main(String[] args) { // main 스레드 Thread mainThread = Thread.currentThread(); log("mainThread = " + mainThread); log("mainThread.threadId() = " + mainThread.threadId()); ..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용더보기프로젝트 환경 구성 1. IDE: 인텔리제이2. Name: java-adv13. Build system: IntelliJ4. JDK: 21이상(자바 19이상에서 제공하는 기능을 사용함)1. 스레드 시작1) 스레드 시작(1) HelloThreadThread 클래스를 상속하고 스레드가 실행할 코드를 run() 메서드에 재정의Thread.currentThread()를 호출하면 해당 코드를 실행하는 스레드 객체를 조회할 수 있음Thread.currentThread().getName(): 실행 중인 스레드의 이름을 조회함package thread.start;public class ..

출처 : 인프런 - 김영한의 실전 자바 - 고급1편 (유료) / 김영한님 유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용1. 멀티태스킹과 멀티프로세싱1) 멀티태스킹과 멀티 프로세싱(1) 단일 프로그램 실행연산을 처리할 수 있는 CPU코어가 1개만 있고 2개 이상의 프로그램을 동시에 실행한다고 가정프로그램의 실행은 프로그램을 구성하는 코드를 순서대로 CPU에서 연산(실행)하는 일이며 CPU코어는 하나로 가정했으므로 한 번에 하나의 프로그램 코드만 실행할 수 있음하나의 프로그램안에 있는 코드를 모두 실행한 후에야 다른 프로그램의 코드를 실행할 수 있다면 위의 그림처럼 프로그램A가 모두 끝나고 프로그램 B가 실행됨예를 들면 음악 프로그램이 모두 끝난 뒤에야 워드 프로그램을 실행할 수 있다면 컴퓨터 ..