묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오타 제보 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]생산자 소비자 문제 2에서 BoundedQueueV5 부분Condition 분리에서consumerCond, producerCond가 바뀐거 같아서 제보드립니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
notify()가 blcoked로 깨우는 이유??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]notify()로 깨울 때 자바가 waitting을 runnable로 안 깨우고 blocked로 깨우는 이유가 궁금합니다. 또 blocked로 깨운 뒤에 어떻게 되는지도 궁금합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스케줄링에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]프로세스 스케줄링과 스레드 스케줄링의 차이에 대해 궁금합니다. 두가지는 동일한 개념인가요? 1개의 CPU 코어는 한번에 하나의 스레드만 실행할 수 있나요?
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 질문 있습니다
안녕하십니까 영한님 영한님 덕분에 비전공자로서 백엔드 개발자의 꿈을 꾸고있는 사람중 1인입니다다름이 아니라 영한님께서 여러 스레드를 실행하면 main 스레드의 경우 다른 스레드의 종료까지 기다리지 않아 join이라는 메서드로 적절하게 대처하는 것이 중요하다고 들었습니다. 하지만 아래 코드를 보면 main 스레드가 종료라는 문구가 항상 맨 마지막에 나와 헷갈려서 여쭈어봅니다. 이경우도 main이 먼저 종료되어 thread가 실행되지 않을 수 있는 건가요? public static void main(String[] args) { MyTask task = new MyTask(); Thread thread = new Thread(task,"work"); log("runFlag = " + task.runFlag); thread.start();; sleep(1000); log("runFlag를 false로 변경 시도"); task.runFlag = false; log("runFlag = " + task.runFlag); log("main 종료"); } static class MyTask implements Runnable { volatile boolean runFlag=true; @Override public void run() { log("task 시작"); while (runFlag) { } log("task 종료"); } } }
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
조금 더 깊은 내용, 실무적인 내용, 미래의 계획에 대해서 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영한님 강의 잘 듣고 있습니다!!지금 강의도 정말정말 좋고 많은 것을 다루지만, 이런 것들을 다룰 예정은 없는지 여쭤보고 싶습니다!Lock next level(자바)ReadWriteLock, StampedLock, Mutex, Semaphore비동기/멀티스레드 next level(feat. 스프링)CountDownLatch 사용법, Transaction 동시성 테스트, 멀티스레드를 활용한 성능/부하 테스트 방법 항상 잘 배우고 있습니다 감사합니다 ☺
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
count 값 1107116232 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]강의에서 volatile을 적용하지 않은 예제에서MyTask flag값을 false로 바꾸고 count값을 출력했는데 이때MyTask Thread의 캐시메모리에있는 값을 메인메모리로 업데이트하고, Main Thread는 메인메모리에있는 count값을 캐시메모리에 동기화해서 갖고온걸까요? 출력할 때 컨텍스트 스위칭이 일어났다고 가정하면, 1_100_000_000이 출력될거라 생각했는데 궁금해서 질문드립니다!
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
future 가 자바스크립트의 promise 랑 비슷한 역할을 하는거라고 생각해도 될까용 ??
JS 의 Promise 랑 개념이 비슷한거 같아서요 !! MDN 설명Promise 는 프로미스가 생성된 시점에는 알려지지 않았을 수도 있는 값을 위한 대리자로, 비동기 연산이 종료된 이후에 결과 값과 실패 사유를 처리하기 위한 처리기를 연결할 수 있습니다. 프로미스를 사용하면 비동기 메서드에서 마치 동기 메서드처럼 값을 반환할 수 있습니다. 다만 최종 결과를 반환하는 것이 아니고, 미래의 어떤 시점에 결과를 제공하겠다는 '프로미스(promise)'를 반환합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오타 제보합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]volatile이라는 키워만 (X)=> volatile이라는 키워드만 (O) 추가로 오탈자나 조금 어색한 문장들이 보였는데 그런게 보일때마다 어디로 공유드리면 될까요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
그림 그리느라 고생하셨습니다 !! 😘😘😘
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
[section7-1강] 출금 예제
안녕하세요, 강의 재밌게 수장중인 수강생입니다. 직전 강의 내용대로라면 공유자원인 balance 도 캐싱되어 항상 1000원이 조회되는 가시성 문제가 발생해야 할것 같은데 출금 예제에서는 발생하지 않는 이유가 궁금합니다. log() 때문에 그럴 수도 있을것 같아서 로그 제거 하고 출력해도 가시성 문제는 발생하지 않는것 같습니다. 제가 뭔가 잘못 이해한 부분이 있는것 같은데, 놓친 부분이 어디인지 잘 모르겠습니다 ㅜㅜ
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오타 제보입니다.
수강하고 있는 좋은 강의의 내용이 명확히 전달되기를 바라는 마음으로 오타 제보 드립니다. 생산자 소비자 문제1.pdf[오타]소비자 스레드는 데이터를 소비자 고,[변경]소비자 스레드는 데이터를 소비하고,
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
블로그 글 작성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요! 책으로 공부 할 땐 어려웠는데영한님 덕분에 편하게 공부 하고 있습니다. 감사합니다.다름이 아니라 블로그에 배운 내용을 작성 하려고 하는데쓰레드 섹션 2,3의 경우 영한님 코드가 노출 되어도괜찮나요?.. 출처는 당연히 남깁니다!섹션 2,3 경우 코드가 많지 않아서이걸 블로그에 올려도 될까 고민입니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
질문) 실무 재고처리 에서 비관적 vs 낙관적 lock
안녕하세요 강사님 재밌게 잘 보고 있습니다. 실무에서 주문 수 증가와 같은 단순 연산의 경우는 낙관적락 이 일반적인데, 인벤토리 ( 재고처리 ) 와 같은 도메인에서도 낙관적 락이 일반적인지가 궁금하여 문의드립니다.재고는 동시에 여러 사용자가 접근하여 변경할 가능성이 있기 때문에, 충돌이 더 빈번하게 발생할 수 있을것 같아 왠지 강의내용으로만 보아서는 비관적 락을 사용할것 같다는 생각이 들긴하지만 ... 통상적으로 사용하는 락이 궁금하여 질문드립니다 감사합니다
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
BlockingQueue에 Task 가 없어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]ExecutorService.submit 시점에 디버깅을 걸어서 확인해보니 BlockingQueue 필드인 workQueue 내부에 task가 들어가지 않고 workers라는 HashSet에 들어가지는 것 같습니다 혹시 제가 어디서 놓친건지 모르겠어서 여쭤봅니다 이거 때문에 계속 헷갈려요..ㅜ
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
BlockingQueue의 offer, poll 질문 드립니다.
안녕하세요! 너무 알찬강의 잘 듣고 있습니다! 강의에서 BlockingQueue의 offer와 poll은 일정시간만큼 대기하신다고 하셨는데요,이때 이들이 기다리는 영역은 어디가 되는건가요..?ReentrantLock을 획득하기 위한 대기wait()을 위한 대기 아니면 그 어느것도 상관없이 항상 대기 Queue가 된 후 2초인걸까요?! 그리고 만약 어떤 상황이든 2초만을 기다리고 종료시키는 방법이라면, Lock을 획득하고, 생산자나 소비자가 무언가 데이터를 처리하는 과정에서 2초가 지났을 때 이 작업을 강제 종료해 버리면 동일하게 동시성 문제가 발생할 수 있지 않을까요?(실제 처리하지 않았지만 실패로 결과가 나타난다던가..)
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
Executor 스레드 풀 관리 - 분석 에서 BlockingQueue
1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]쓰레드 풀 core사이즈와 max사이즈가 어떻게 관리 되는지는 어느정도 이해한 것 같은데, 이 예제에서 BlockingQueue안에서 쓰레드들이 스레드 대기 집합, 락 대기 집합에 어떻게 관리되는 것 까지 이해해보려고 하니 매우 어렵네요..ai야 도와줘~!
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 대기 집합과 스케쥴링 큐
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]synchronized를 사용하면 사용되는 스레드 대기 집합과 기존 멀티스레드 환경에서 사용되는 스케쥴링큐는 다른건가요?
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 강의 질문이 있습니다.
1) main,Thread-A,Thread-B 3개의 스레드를 만들고 실행시킨 후main 스레드에서 의도적으로 exception을 발생시켜도main 스레드만 종료되고 Thread-A, Thread-B는 돌아가는데이 때 자바 자체를 중지하려면 Thread-A와 B를 Daemon으로 생성하는 방법 밖에 없을까요? 2)궁금증이 발생했는데 main 스레드를 Daemon으로 선언할 수 있나요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
Future로 받아오는 방식이 자바스크립트의 await 비동기 방식과 유사한지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 우선 좋은 강의 제공해 주셔서 감사합니다. 다름이 아니라 해당 강의 공부 중에 자바스크립트의 비동기 방식과 유사한 것 같은데 내부 동작은 물론 다르겠지만, 자바스크립트의 Promise나 await 방식과 같이 비동기로 처리해서 값을 가져오는게 유사한 것 같은데 맞는지 궁금합니다.강의 내용과는 다른 내용일 수도 있어서 죄송합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
여러 스레드의 실행 순서 질문 (start 메서드)
섹션3. 여러 스레드 만들기 - [1:40] HelloRunnable 스레드 3개 실행하는 부분 앞서 스레드의 start 메서드를 호출할 때 스레드는 스택 공간을 할당 받고 실행 된다고 이해했습니다.그럼 아래 코드를 실행했을 때 start 메서드를 순서대로 읽어서 순서대로 실행 되어야 하는게 아닌가요?? 왜 각자 동시에 실행 되어서 순서를 보장할 수 없는 것인가요? HelloRunnable runnable = new HelloRunnable(); Thread thread1 = new Thread(runnable); thread1.start(); Thread thread2 = new Thread(runnable); thread2.start(); Thread thread3 = new Thread(runnable); thread3.start();