Java 4

[Java] 스레드 풀과 Excutor 프레임워크

* 해당 포스팅은 김영한님의 자바 고급편 강의를 학습 후 정리한 포스팅 입니다. Intro안녕하세요 이번에 스레드 포스팅 시리즈를 쭉 이어오고 있는데 원래는 맨 처음 프로세스와 스레드의 차이 부터 시작하면서 쭉 진행할려고 했는데그렇게 하기엔 스레드 관련 포스팅을 하기엔 내용이 너무 방대하고 Lock 인터페이스를 활용해서 객체를 구현할 일도 거의 없구요이미 자바에서 잘 만들어진 Executor 객체를 사용할 텐데  우선은 실무에서 바로 사용할 수 있는 개념과 코드 예제를 설명하고 그 다음 포스팅을 차근 차근 풀어나가도록 할려고 노선을 변경했습니다. 그래서 갑자기 포스팅이 쭉 이어오다가 뜬금없이 Excutor 개념이 나왔는데앞으로 계속 작성은 할테니깐요 쭉 지켜봐주시면 정말 감사하겠습니다!!스레드를 직접 사..

Java 2024.09.29

[Java]ReentrantLock

* 해당 포스팅은 김영한님의 고급 자바편 영상을 시청 완료후 정리한 내용입니다. 안녕하세요 오늘로 추석 마지막 날인데 다들 즐거운 시간 보내셨는지요~ ㅎㅎ이번 추석은 정말 이상하게 더운 날씨였습니다.. 추석에 폭염이라니 정말 믿겨지지 않네요.. 오늘 포스팅은 지난 포스팅에 쭉 이어가서ReentrantLock 객체에 대해서 사용법, 내부적으로 어떻게 동작하는지 살펴보는 시간이 되겠습니다. ReentrantLock 이론자바는 1.0에 synchronize 키워드를 통해 쉽게 임계영역을 설정하고 병목화를 최소화 할 수 는 있지만 각 스레드를 세밀하게 제어할 수 없는 단점이 있다고 했습니다 synchronize 단점무한대기 : Blocked 상태의 스레드는 락이 풀릴 때 까지 무한 대기한다.공정성: 락이 돌아왔..

Java 2024.09.18

자바의 고오급 동기화 concurrent.Lock

안녕하세요 요즘에는 동기화를 학습중이라 동기화 관련 포스트만 하게 되네요 ㅎㅎ아무래도 요즘 신입 개발자들에게 친숙하지 않는 개념이라고 생각이라고 드는데 사실 동기화 문제는 이해하기가 굉장히 어렵습니다. 공부하기도 쉽지가 않고 학습을 한다 하더라도 어떻게 순서대로 학습해야하는지 시간을 많이 사용해야 하는데그런분들을 위해서 조금이나마 도움이 됬으면 하는 마음으로 이번 포스팅 올리도록 하겠습니다.지난 포스팅 synchronized 의 복습 지난 포스팅에 내용에 우리는 자바가 무려 1.0부터 지원해준 synchronized 키워드 덕분에 동시성 이슈를 간단하게 설명할 수 있다고그때 설명드렸습니다.  사용방법은 간단하게 각 함수 앞에 synchronized 키워드만 붙여주면 동기화 문제를 해결할 수 있다고 말씀드..

Java 2024.09.14

Java 프로세스와 스레드

* 해당 포스팅은 김영한님의 자바 고급 편에 있는 멀티스레드 영상을 보고 정리한 내용입니다. 개요처음 자바를 학습할때 이 코드 제일 먼저 보지 않나요?public static void main(String[] args) { //처음 자바 실행하는 코드 System.out.println("hello world!")}저도 처음 시작할때 위 코드를 출력하는거 부터 시작했던 기억이 나는거 같습니다. 몇분들은 아마 의문점을 가질 수 있는데요 프로세스와 스레드라는 주제로 왜 이 코드를 보여주냐?그 이유는 바로 위 main 함수부터 메인 스레드가 시작지점이 바로 여기 이기 때문입니다. 처음 자바를 학습 할때는 멀티 스레드 라는 개념을 인지하지 않고 메인 함수에서 많은 함수와 프로그램을 실행 시켰는데요사실 ..

Java 2024.08.30