묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
안녕하세요 cas 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 안녕하세요 강의 잘 듣고 있습니다.cas 강의에서volatile int와 atomicInteger의 performance 차이를 보니까 atomicInteger가 더 빠른 것을 알 수 있었습니다. 그런데 이건 조금 이해가 잘 안되는게,atomicInteger 자체가 volatile을 내장하고 있는 거라 생각했는데 왜 volatile보다 속도가 빠른 지 이해가 잘 가지 않습니다.volatile은 어떤 락도 안 걸고(그래서 결과가 다르게 나오지만) 가시성만 고려하기 때문에 atomicInteger보다 결과가 좋아야 할 것 같은데 반대의 결과가 나와서 궁금해서 질문드립니다.
-
미해결김영한의 실전 자바 - 고급 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 코어는 한번에 하나의 스레드만 실행할 수 있나요?
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
실무에서 자바가 제공하는 락을 사용하는 경우
자바에서 제공하는 동기화 도구들(synchronized, ReentrantLock 등)은 단일 JVM 내에서만 동기화를 보장하고, 여러 인스턴스가 있는 분산환경에서는 분산락 등 다른 기법을 사용해야 하는 것으로 알고있습니다.현대의 운영 환경에서는 고가용성과 확장성을 위해 대부분 여러 인스턴스를 운영하기 때문에, 자바 자체의 동기화 기법을 사용하는 경우가 제한적일 것 같은데요. 실무에서 자바가 제공하는 동기화 도구들은 어떤 경우에 주로 활용되나요?
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
뮤텍스나 세마포어는 busy waiting이 없는 게 맞을까요?
강의자료에서 세마포의 경우 P연산에서첫째줄에 while(test_and_set(&lock)==1)을 수행하고 있는데요, 혹시 이부분은 busy waiting으로 생각하지 않는 건가요? 뮤텍스나 세마포어 모두 강의자료에서 위 코드를 처음 실행하는데 이부분도 busy waiting에서 while(); 문과 동일하지 않나 생각이 들어서요 혹시 제가 잘못 이해하고 있는 것이라면 알려주시면 감사하겠습니다!
-
해결됨김영한의 실전 자바 - 고급 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 동시성 테스트, 멀티스레드를 활용한 성능/부하 테스트 방법 항상 잘 배우고 있습니다 감사합니다 ☺
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
오류?
Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 8.3 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown실행과 테이블 다 잘 만들어 지는데 이런 로그가 계속 뜹니다.제 mysql 문제일까요?mac os 사용중이고 강의처럼 docker를 통해 띄우는게 아닌 홈브류로 mysql을 다운받아서 쓰고있었어서 그대로 쓰는중입니다
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
threadpoolexecutor.submit 실행 시 순차 실행
안녕하세요 py_ad_1_5.py 파일 관련 강의 듣다가 질문 드립니다. threading.Thread로 스레드 직접 두 개 만들어서, start()를 했을 때는 두 작업이 병렬적으로 진행되는 것으로 보였는데요 (First, Second에 해당하는 logging이 번갈아 찍혔습니다)하지만, executor.submit으로 실행시에는 First task에 해당하는 logging이 전부 끝난 다음에 Second task에 해당하는 logging이 시작되는 것을 확인했습니다. submit으로 실행시에는 내부에 join이 있다거나 별도의 동작이 있는 걸까요?
-
해결됨김영한의 실전 자바 - 고급 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)'를 반환합니다.
-
미해결앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해
2) 오퍼레이션큐(OperationQueue) 강의 질문입니다
2) 오퍼레이션큐(OperationQueue) 강의 15분37초 쯤 보면 필터 작업이 다 끝난다음에 append큐를 통해서 배열에 전달을 한다고 말씀하셨어요. 근데 여기 필터하려는 이미지가 5장이잖아요, 5장 모두 필터링 다 끝나고 나면 배열에 들어가는건가요 아니면 ,filterQueue는 기본적으로 동시적으로 동작하면서 각 필터 작업이 끝나는 대로 배열에 넣는건가요? filterQueue.waitUntilAllOperationsAreFinished() 코드 보면 동기(sync)적으로 동작하게 하니까 전자가 맞는거 같아보여요
-
미해결김영한의 실전 자바 - 고급 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에 들어가지는 것 같습니다 혹시 제가 어디서 놓친건지 모르겠어서 여쭤봅니다 이거 때문에 계속 헷갈려요..ㅜ