inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

44강, 45강을 듣고 궁금한 점이 있어 질문드립니다.

해결됨

기초 탄탄! 독하게 시작하는 Java Part 3(상) : 멀티스레드와 동기화

안녕하세요:) 강의를 듣고 궁금한 점이 있어 질문드립니다. 44강과 45강에서 List에 대해 설명해 주시면서 일반적인 상황에서는 ArrayList나 LinkedList를, 동시성 문제가 고려되어야 하는 상황에서는 Vector를 사용하라고 말씀해 주셨습니다. 그런데 Vector는 JDK 1.x 시절에 도입된 레거시 클래스로 모든 public 메서드에 synchronized 키워드가 적용되어 있어 성능 저하와 불필요한 락 경쟁, 캐시 무효화 등의 문제가 발생할 수 있는 것으로 알고 있습니다. 그래서 현재는 java.util.concurrent 패키지에서 제공하는 동시성 컬렉션이나, Collections.synchronizedList, CopyOnWriteArrayList와 같은 대안들을 상황에 맞게 사용하는 것이 더 적절하다고 알고 있습니다. 이러한 이유로 단순히 동시성 문제를 고려해야 하는 상황에서 Vector를 권장한다라는 접근은 현재 시점에서 어울리지 않는다고 생각됩니다. 그럼에도 강의에서 Vector를 언급하신 특별한 의도나 배경이 있으셨는지 궁금하여 질문드립니다 :)

  • java
  • jvm
  • lock-free
  • generic
  • multithread
형씌 댓글 1 좋아요 0 조회수 93

tryLock 이후 InterruptedException 발생

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

락을 얻고 그 후에 InterruptedException이 발생 한다면 finally 에 unlock 을 작성 해 주어야 하나요 ?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
ggg7515 댓글 1 좋아요 0 조회수 88

영한님, sleep(10) 이유가 궁금합니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요. 영한님 궁금한 점이 있습니다. sleep(10) 를 하면 동시 실행을 더 촉진할 수 있다는 것이 이해가 안됩니다. 예를 들어, 아래를 가정한다면요! 각 시간은 별도로 가정한 것입니다. 1번 쓰레드가 1.0초에 먼저 실행이 된 후 0.1 초 쉬었다가 실행이 되면 1.1초에 실행 가정, 2번 쓰레드가 1.1초에 먼저 실행이 된 후 0.1 초 쉬었다가 실행이 되면 1.2초에 실행 가정, 3번 쓰레드가 1.2초에 먼저 실행이 된 후 0.1 초 쉬었다가 실행이 되면 1.3초에 실행 가정, ... 그렇다면 각 쓰레드가 0.1초씩 쉬었다고 하더라도 결국에는 실행시점이 1.1초, 1.2초, 1.3초 다 다르다고 봐도 되지 않나요? 뭔가, sleep(10) 을 빠지게 되면 대부분 쓰레들이 비슷한 시점에 10ms 를 자고, 거의 동시에 깨어나서 increment() 를 실행하는 것 같은데 맞나요? 맞다면 왜 그런가요? 감사합니다!

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
highjune 댓글 2 좋아요 0 조회수 127

i = 1 원자적 연산

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요. 좋은 강의 항상 감사합니다. for문으로 1부터 100부터 돌건데, 그 i 변수값(카운터)이 바깥의 공유 변수에 그대로 대입(이퀄 연산) 하는데. 이런 쓰레드가 있는데 100개가 있는데 동시에 같은 로직으로 동일한 공유 변수에 접근을 하는 상황이다. 더하기 연산을 하는 것이 아니다. 이 프로그램이 끝나면 이 공유변수에는 몇의 값 ? i = 1 처럼 원자적 연산일 경우, 멀티스레드 환경에서 문제가 되지 않는다고 하셨잖아요. 그러면 위의 상황에서도 무조건 100이 들어간다고 봐도 되죠? 실제로 테스트 해봤을 때도 100이 계속 들어가긴 합니다. 감사합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
highjune 댓글 1 좋아요 0 조회수 50

설정관련해 한번더 질문드립니다

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이렇게 코드 작성하는 부분에서도 설정차이가 있습니다 선생님과 같은 설정이였다가 갑자기 제가 잘못 눌러 밑과같이 변경되었습니다. 혹시 원래대로 설정할수 있을까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
cowldnd123 댓글 1 좋아요 0 조회수 79

영한님 ReentrantLock 대기상태 다시 질문드려요!

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 제가 멀티스레드와 동시성 관련해서 제대로 깊게 알아야할거같아서 다시복습으로 듣고있는데 예전에 질문했던 내용과 동일한거같아서 다시 질문드려요 ㅠ 그전에 처음 들어서 헷갈린부분이있었는데 다시들으면서도 설명한 부분이 맞나 싶어서요. 그전에 질문할때도 강의내용이 맞는지에 대한 질문이라 조심스러운부분이고 제가 잘못안다고 생각했는데 짚고넘어가면 좋을거같아서 다시 질문드립니다! 이전 질문 링크: https://inf.run/t3Bbm 71. 스레드의 대기 강의 핵심 질문 : 부분(13:30)강의에서 ReentrantLock 락 획득 실패시 대기큐에 WAITING상태라고 설명했는데 BLOCKED 상태가 가맞는지 검토필요. 이부분에 대한 검토가 필요할거같고 제가 잘못알고있다면 참고해야할 링크를 주시면 감사하겠습니다. 아니라면 저처럼 이해하는데 오해의 소지가있는부분이 발생할것같습니다. 질문내용 : 부분(13:30)에서 대기1 락을 획득하기위한 대기큐에 대해서 설명해주셨고 lock()호출시에 이미 다른 스레드가 락을 획득시에는 WAITING상태로 대기하고 synchronized인 경우에만BLOCKED인거고 ReentrantLock은 WAITING 상태로 락획득을 대기큐에서 대기한다 라고 설명해주셧는데 이부분이 락이아닌 큐가 꽉차거나 완전히 비어있을때(특정 조건)는 RUNNABLE에서 await()사용해서 WAITING상태로 만들고 이걸 스레드대기공간(집합)에 넣고 추후 명시적으로 깨울수있게하는데, 락획득 실패시에는 BLOCKED상태로 락대기집합에 있는거고, 얻고나서 RUNNABLE상태에서 특정조건에 부합되지않을때(큐가 꽉차거나, 없을때) await를 써서 다시 WAITING상태로 스레드 대기집합에 넣는게 맞는거같아서 검토부탁드립니다.! 그래서 이전강의 notify설명(synchronized 부분이긴하지만)에서도 WAIT -> BLOCKED 설명해주실때 WAIT이던애를 깨우면 바로 RUNNABLE이 되는게아니라 BLOCKED되는 설명부분이랑 ReentrantLock 역시 같은 원리가 맞는거같은데 이부분 다시 검토해주실수있나해서요ㅜ ReentrantLock 이라고해서 lock얻는걸 실패해도 WAITING이라는건 아닌거같아 검토해주시면 감사하겠습니다..! 그리고 (17:40) synchronized의 경우 blocked일때는 interrupt로 깨우지못한다고했고(이부분설명은 맞는데) reentrantlock은 lockInterruptibly() 를 사용하면 가능하다고 했는데 이게 WAITING상태여서 가능하다기보단 lockInterruptibly이 BLOCKED상태인 스레드를 InterruptedException가 발생해서 blocked상태에서 빠져나오는게하는 기능인거 같은데 이부분도.. reentrantlock역시 lock()만 사용으로는 못깨우고 이게 WAITING인거랑 좀 별게인거같아서 검토해주실수있을까해서요! 아래 참고 링크를 걸긴했는데 강의들 들으면서 사이클을 생각하다가 락을 획득할려다가 실패시 WAITING으로 대기한다라는게 원리상 아닐거같아서 찾아본게 oracle에서는 명시적으로 나타내진않았고 chat gpt에게 물어보면 제가 계속 waiting이 맞지않냐 blocked은 아니지않냐 공식문서 있냐 물어보면 명시적이진 않지만 유추할수있다 라고도 하고 그래서 결국 찾은 링크가 아래인데 공식은 아니고 블로그 내용이긴해서,, 한번더 영한님이 체크해주실수있을까해서요 아래 chat gpt 답변과 블로그 링크에서 해당 내용부분 스샷도 일부 남길게요! https://blog.ycrash.io/java-suspended-thread-states-blocked-waiting-timed_waiting/?utm_source=chatgpt.com ------ 질문을 남기니 그때처럼 인프런ai가 답변했는데 저 내용이 맞는거같아서요!

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
김태언 댓글 2 좋아요 0 조회수 90

설정관련질문드립니다

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 단축키를 누르다 실수로 어떤키를 잘못누르게 되어서 상단에있는 최근에 열어본 창이 보이지 않게 되었습니다. 예를 들면 StartTestMain.java HelloThread.java 등등 켜져있는창이 보이지 않습니다 기존 설정으로 다시 돌아가고 싶은데 어떻게 해야할까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
댓글 2 좋아요 0 조회수 84

커널객체와 jvm 객체 차이 질문.

해결됨

기초 탄탄! 독하게 시작하는 Java Part 3(상) : 멀티스레드와 동기화

제가 cs가 조금 약해서 그런데... 커널객체랑 jvm내 객체랑.. 크게 보면 같은 의미라고 할수있나요? 자바에서 객체는 JVM이 관리하는 메모리 내 인스턴스--> 인데... 커널 객체도... 만약에 C로 짜여진 운영체제라면.. 네이티브 메모리에 올라가있는 데이터구조 인스턴스..?라고 해야하나 그런걸 의미하는걸까요?

  • java
  • jvm
  • lock-free
  • generic
  • multithread
따라란따라란 댓글 1 좋아요 0 조회수 116

JVM 스레드 TLS 질문

해결됨

기초 탄탄! 독하게 시작하는 Java Part 3(상) : 멀티스레드와 동기화

선생님께서 말씀하시는 TLS는 프로세스의 한정적인 VMS위에서 나뉘어서 사용되는건가요?? Heap area에 비해 다른 영역은 작은걸로 아는데 TLS가 나뉘어서 사용되면 영역이 작아지지 않을까라고 생각되서 질문드립니다!!

  • java
  • jvm
  • lock-free
  • generic
  • multithread
UHO 댓글 1 좋아요 0 조회수 123

공부 방향이 궁금합니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 김영한님의 강의를 들으며 꾸준히 공부하는 한 직장인입니다. 현재 로드맵이 나눠져 있는데 혹시 이제까지 나온 김영한님의 모든 강의를 포함하는 로드맵을 추천해 주실 수 있을까요??

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
wjdghks6086 댓글 1 좋아요 0 조회수 150

.close()이후 poolSize문제

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 21 버전의 자바를 사용 중입니다. .close()를 하여도 pool의 개수가 0개로 변경되지 않습니다. main 스레드에서 인지하는데 시간이 걸리나 하여 sleep()을 통해 시간의 변화를 줬지만 여전히 동일한 결과값이 도출됩니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
김현수 댓글 2 좋아요 0 조회수 117

인터럽트 상태에 대하여

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 인터럽트 - 시작 2 강의를 수강하다 궁금한 점이 생겨 여쭤보게 되었습니다. 강의 내용 중 'work 스레드는 TIMED_WAITING 상태에서 RUNNABLE 상태로 변경되고 InterruptedException 예외를 처리하면서 반복문을 탈출한다. work 스레드는 인터럽트 상태가 되었고, 인터럽트 상태이기 때문에 인터럽트 예외가 발생한다. 인터럽트 상태에서 인터럽트 예외가 발생하면 work 스레드는 다시 작동하는 상태가 된다. 따라서 work 스레드의 인터럽트 상태는 종료된다. work 스레드의 인터럽트 상태는 false로 변경된다.' 부분에 대해 여쭤보고 싶습니다. 전반적인 내용은 이해가 되는데, '상태' 라는 표현에 대해 이해가 잘 되질 않습니다. 앞 부분 스레드 생명 주기에서 스레드의 상태는 new, runnable, blocked, waiting, timed_waiting, terminated가 있다고 학습했는데, 여기에서 나오는 '인터럽트 상태'는 스레드의 생명 주기에 등장하는 상태와는 독립적으로 봐야하는 상태일까요 ? '인터럽트 상태'가 스레드의 생명 주기에서 등장하는 스레드의 상태 중 하나인지 혼동되어 여쭤봅니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
wonderwall09in 댓글 1 좋아요 0 조회수 100

스레드 실행 순서

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] public class ManyThreadMainV2 { public static void main(String[] args) { log("main() start"); HelloRunnable runnable = new HelloRunnable(); for(int i=0; i<100; i++){ Thread thread = new Thread(runnable); thread.start(); } log("main() end"); } } 안녕하세요, 여러 스레드 만들기에서 반복문을 사용하여 스레드를 생성하면 콘솔에 스레드의 실행 순서가 보장되며 출력이 됩니다. 사진처럼 몇 번을 다시 수행해도 Thread0, 1, 2 ... 98, 99로 강의와 다르게 순서가 항상 일정하게 출력되는데 혹시 무엇이 문제인지 알 수 있을까요 ?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
wonderwall09in 댓글 1 좋아요 0 조회수 88

몇가지 질문드립니다

해결됨

기초 탄탄! 독하게 시작하는 Java Part 3(상) : 멀티스레드와 동기화

lock flag로 스레드가 인스턴스에 접근한다고 하셨습니다. 그런데 멀티스레드에서는 동시에 인스턴스에 접근하여 각각 코어에서 연산을 하기 때문에 동기화 문제가 발생합니다. 그럼 항상 lock flag을 획득하고 접근하는게 아닌가요? 그리고 스레드가 함수 단위라 하셨는데, write 과정을 cpu 스케줄링 관점에서 생각하면 Time slice 내에서 load, read 하고 기다린 뒤 다시 자신의 차례가 왔을 때 memory에 write한다고 이해했는데 맞나요? 또한 synchronized를 이용하면 원자성이 보장된다고 하셨습니다. 그렇다면 복잡한 로직과 관계 없이 synchronized를 붙이면 스케줄링 없이 한방에 실행되는 건가요? 마지막으로.. 서버를 겉햝기식으로 공부하다가 회의감이 들어 널널한 개발자님 강의를 들으며 jvm, 자바부터 다시 공부하고 있습니다. 하지만 공부를 하면서 불안하고 회의감이 듭니다. 왜 이런 감정이 드나 생각해보았더니 jvm, 멀티스레드를 프로젝트에 어떻게 녹여서 포트폴리오화 해야 할지 모르는 막막함 때문이었습니다. 제 생각에 조언, 지적을 해주실 수 있나요?

  • java
  • jvm
  • lock-free
  • generic
  • multithread
ililil 댓글 2 좋아요 0 조회수 169

교안 오타인지 확인 부탁드립니다!

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 교안 7. 고급 동기화 - concurrent.Lock.pdf 중 7페이지 두번째 줄 Thread.park(), Thread.parkNanos(long millis) -> LockSupport.park(), LockSupport.parkNanos(long millis) 수정되는 것이 맞는 내용 같은데 확인 부탁드립니다! 제가 잘못 알고 있다면, 다시 학습하겠습니다 :)

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
김재훈 댓글 2 좋아요 0 조회수 99

yield() 호출

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요 좋은 강의 감사합니다. package thread.control.printer; import java.util.Queue; import java.util.Scanner; import java.util.concurrent.ConcurrentLinkedQueue; import static util.MyLogger.log; public class MyPrinterV4 { public static void main(String[] args) { Printer printer = new Printer(); Thread printerThread = new Thread(printer, "printer"); printerThread.start(); Scanner userInput = new Scanner(System.in); while (true) { log("프린트할 문서를 입력하세요. 종료 (q): "); String input = userInput.nextLine(); if (input.equals("q")) { printerThread.interrupt(); break; } printer.addJob(input); } } static class Printer implements Runnable { Queue<String> jobQueue = new ConcurrentLinkedQueue<>(); @Override public void run() { while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { Thread.yield(); // 추가 continue; } try { String job = jobQueue.poll(); log("출력 시작 : " + job + ", 대기 문서: " + jobQueue); Thread.sleep(3000); log("출력 완료"); } catch (InterruptedException e) { log("인터럽트!"); break; } } log("프린트 종료"); } public void addJob(String input) { jobQueue.offer(input); } } } 위의 코드에서요 yield() 의 의미와 취지는 알겠으나, 수업에서 말씀주셨던 위의 코드에서는 결국 printerThread 쓰레드 1개잖아요? (다른 쓰레드는 main) 그래서 yield() 를 넣더라도 다른 쓰레드에 양보할 쓰레드가 없는 것 아닌가요? (코어 갯수랑 별개로요) 감사합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
highjune 댓글 2 좋아요 0 조회수 84

교안 오타인가요?!

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 강사님 강의 잘 듣고 있습니다!! 혹시 7. 고급동기화 교안 부분 parkNanos()에서 millis가아니라 ns아닌가요?! ! 그리고 작은 오타하나도 말씀드립니당:)

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
seulgi980 댓글 2 좋아요 0 조회수 116

교안 오타 일까요?

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

map1의 결과가 뭔가 벨류값이 2, 3이 바뀐거같네요.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
트릴 댓글 1 좋아요 0 조회수 84

9:06초에서 이해가 안가는 부분 (unlock)

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

비공정 모드에서는 스레드 경쟁 상태가 되어 어떤 스레드가 락을 획득 할 지 보장이 안되는건 이해가 됐습니다. 다만 교안에는 이미지 처럼 하나 깨운다 라고 되어있는데, 그러면 경쟁 상태가 의미가 있는지요? 한번에 여러 스레드가 unpark되는게 아니라면 왜 레이스 컨디션 문제가 발생하는지 궁금합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
트릴 댓글 2 좋아요 1 조회수 121

new Condition 부분 질문

미해결

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

선생님 안녕하세요. 이해가 안되는 부분이 있습니다. 대기 메서드가 호출되면 락이 해제되고, => 대기 메서드가 호출 되면 락이 해제되는 것까지는 이해했습니다. 신호 메서드(notify)가 호출되어 대기 메서드에서 반환하기 전에 스레드는 락을 다시 획득한다. => 이부분이 잘 이해되지 않는데요. 대기 메서드가 호출되면서 락이 해제, 와 동시에 신호 메서드가 호출되어 대기가 다 끝나기전에 (wait) 락을 다시 획득한다는 말인가요? 즉, public wait () { 1. 락 해제 2. 신호 메서드 호출 (notify all) 3. Thread.currentThread -> 락 획득?? } 답변 부탁드립니다! 감사합니다.

  • java
  • 동시성
  • multithread
  • synchronisation
김규영 댓글 1 좋아요 0 조회수 121

인기 태그

인프런 TOP Writers

주간 인기글