묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 고급편
쓰레드 로컬과 쓰레드 스택의 차이
동시성 문제를 해결하기 위해서 쓰레드 로컬이 각 쓰레드별 전용 저장공간을 만들어 데이터를 저장한다고 하셨는데 JVM의 메모리영역중에서 힙과 메소드영역은 모든 쓰레드가 공유하지만 각 쓰레드별로 스택공간이 할당된다고 알고 있습니다.그렇다면 쓰레드 로컬을 통해 데이터를 저장하면 각 쓰레드의 스택영역에 데이터가 저장되는 것인가요?만약 아니라면 쓰레드 로컬과 각 쓰레드의 스택영역에 저장되는 데이터들은 어떤 차이가 있는 것인지 궁금합니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
Thread가 동시에 실행이 안됩니다.
안녕하세요! 좋은 강의 감사합니다.다름이 아니라 Thread편과 Runnable편에서 나도코딩님이 쓰신 코드를 그대로 써서 실행을 했는데요.Thread가 동시에 실행되지 않고 사장 청소가 다 실행되고 나서 직원 청소가 진행이 됩니다.Thread가 동시에 실행되지 않는 이유를 스스로 찾지는 못했습니다.혹시 제가 쓰고 있는 컴퓨터가 성능이 안 좋은 것도 영향이 있나요? 실행을 누르면 7초에서 10초 뒤에 실행이 완료됩니다. 답변해주시면 감사하겠습니다. 좋은 하루 되세요!(밑에 실행 결과 첨부하겠습니다.)결과:-- 사장 청소 시작 --(사장) 1번방 청소 중(사장) 3번방 청소 중(사장) 5번방 청소 중(사장) 7번방 청소 중(사장) 9번방 청소 중--사장 청소 끝 ---- 직원 청소 시작 (Thread) --(직원) 2번방 청소 중 (Thread)(직원) 4번방 청소 중 (Thread)(직원) 6번방 청소 중 (Thread)(직원) 8번방 청소 중 (Thread)(직원) 10번방 청소 중 (Thread)--직원 청소 끝 -- (Thread)
-
해결됨Java TPC 실전프로젝트 (Java API 활용)
쓰레드 관련해서 질문합니다.
Runnable r=new DownloadBroker(dPath, fileName); Thread dLoad=new Thread(r); dLoad.start(); for(int i=0;i<10;i++) { try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } System.out.print(""+(i+1)); } 쓰레드 관련해서 이해가 부족해서 이 부분이 이해가 되지 않습니다. dLoad.start(); 하면 다운로드가 이루어지고 1. Thread.sleep(1000);은 메인 쓰레드를 10초 후에 종료한다는 뜻인거 같은데, 이렇게 하는 이유가 있나요? 2. Runnable 객체를 만들어 Thread 객체에 생성자로 담은 후 dLoad.start();하는 과정에서 Runnable객체는 어떤 의미이며, Thread 객체를 생성(이것도 궁금)해서 dLoad.start()하는 부분이 궁금합니다. + 자바 기본 강좌 Stream에 관련된 부분도 만드시면 바로 수강하겠습니다. InputStream, BufferedReader 등등 조금 어렵다고 생각이 드네요. 대충은 알겠는데 ㅠㅠ
-
미해결운영체제 공룡책 강의
교수님! 04 퀴즈 8번에 대하여 질문 있습니다
안녕하세요! 먼저 좋은 컨텐츠를 무료로 제공해주심에 감사합니다! 자바에서 thread.start()메서드를 호출한 후 join메서드를 호출하기 전까지는 main thread와 새로 만든 runner thread가 동시에 돌아가 C와 A중 어느 것이 먼저 출력될지는 알 수 없는게 아닌가 싶어서 질문드립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요! 질문이 있습니다.
안녕하세요! 좋은 강의 감사드립니다 :) 강의를 보면서 궁금한 사항이 생겨 질문드립니다. 쓰레드 풀에 할당된 모든 쓰레드가 사용중인 상황에서, client로부터 굉장히 많은 요청을 받게 된다면, WAS내에서 즉, 메모리상에 client의 요청을 순차적으로 관리하여 처리하는 가령, 큐같은 자료구조가 필요할 것이라는 생각이 드는데요. 만약 이 생각이 맞다면, client로의 요청이 많아질 수록 해당 큐는 점점 커질 것이고, 서버가 감당할 수 있는 메모리 임계치를 넘어가 서버가 죽어버리는 현상이 발생할 우려가 있을 것이라고 생각되는데요. 제 생각이 맞는 것인지, 그리고 실무에서도 이러한 상황을 고려하여 서버를 구축하는 것인지가 궁금합니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
하나의 프로그램에 쓰레드를 여러 개 부여한다에 대해 궁금한점이 있습니다.
안녕하세요. 강사님 멀티쓰레드 부분 강의를 듣고 궁금한점이 생겨 질문드립니다. 우선 하나의 프로그램에 여러 개의 쓰레드를 부여한다라는 것은 동시에 여러 작업들을 할 수 있다 정도로 이해를 했습니다. 문득 궁금한 점이 생긴 부분은 작업 관리자에서 성능 부분을 보면 저의 경우 논리 프로세서가 12개라고 나옵니다. 그렇다면 논리적으로 12개의 코어를 사용한다고 판단되어 지는데요. 여기서 백단에서 프로세스가 170개 가량이 돌아가는 데 스레드가 대략 2400개 정도 실행되고 있습니다. 백단에서 실행되는 프로세스가 엄청나게 많고 그 백단에서 실행되는 프로세스들 조차도 실행되기 위해서는 CPU 코어를 일정시간 획득해야 되는 것이겠지요 ? 그렇다면 엄청나게 빠르게 12개의 코어를 2400개의 쓰레드에게 일정시간 씩 분배하고 있다고 생각 되어지는 데요. 그렇다면 제가 작성한 프로그램에서 5개의 쓰레드를 운영한다고 해도 5개의 코어를 동시다발적으로 획득하는 것이 아닐테고 고 순차적으로나마 하나의 프로그램이 5번의 코어를 할당받아 5개의 실행흐름을 각각 수행하고 다른 프로그램으로 CPU 제어권을 넘겨주는 방식으로 이해하면 될까요 ?