public void lock() { while (!owner.compareAndSet(false, true)) LockSupport.parkNanos(1); } 강의에서 직접 구현하신 스핀락에서 LockSupport.parkNanos() 를 사용하셨을 때, 컨텍스트 스위칭이 발생하지 않는다고 설명해주셨는데요. 실제로 예제 코드에서 Thread.getState() 로 스레드 상태를 확인해보니, parkNanos() 호출 시 스레드가 TIMED_WAITING 상태로 전환되었다가 지정한 시간이 지나면 RUNNABLE 상태로 바뀌는 것을 확인했습니다. 그렇다면 지정한 시간이 지난 후 RUNNABLE 상태가 되었을 때, 해당 스레드에 대해 컨텍스트 스위칭이 발생하는 것이 아닌지 궁금합니다. 또한 강의에서는 parkNanos() 가 실제로 블로킹되는 것이 아니라 내부적으로 스피닝한다고 설명해주셨는데, 만약 그렇다면 스레드 상태가 RUNNABLE 이어야 하지 않을까 하는 의문도 들었습니다. 이 부분이 조금 혼란스러워 이렇게 질문드리게 되었습니다.
bagPtr -> year =2021; 이렇게 포인터 변수에서 멤버변수에 접근할때 -> 이거 사용하는건 이해가 되는데 , 출력함수에서 매개변수가 bag의 포인터 변수인거 같고.. 근데 printf 에서 %s에 들어가는 가는 값을 왜 bag->brand 라고 적어두신지 이해가 잘 안가요..
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 섹션2 배열도입 11:42부분 그림을 보고 궁금증이 생겼습니다. 왜 student1,student2 객체를 따로 만들어서 students배열에 대입하는 건가요? for(int i=0;i<students.length;i++) students[i]=new students(); 이렇게 객체를 생성하는것이 메모리 낭비가 없기 때문에 더 효율적인 것 아닌가요?
EXAM 배열 예시에서 *p++는 p 주소의 주소값이 증가되었는데, ++*p는 왜 포인터 변수가 가르키는 값의 아스키코드 값이 증가되는 건가요?.. 너무 헷갈려요 ㅠ 제가 혼자 풀어보기로는 ++*p도 주소값이 전위연산되서 M을 가르키고 출력할 줄 알았는데.. ++*p가 아스키코드 값을 증가시키는 거면 *p++는 왜 아스키코드 값을 후위연산으로 증가시키지 않는 건지 .. 실전에 풀 때 안 헷갈릴 정도로 이해하고 싶어요 ㅠ
9:10초대 질문이 있습니다. 다른 수강생 분의 질문과 답변을 봤는데도 이해가 가질 않아서요! printf("%c\n, ++ *p); 이 순간에 포인터 변수 p가 가리키고 있는 것은 msg의 A였고, 전위 연산(++)으로 B가 답이라는 것까지는 알겠습니다. printf("%s\n", msg); 에서 포인터 변수 p와 msg가 별개의 변수라면, msg를 출력했을때, 기존의 EXAM이 정답이라고 생각했습니다. p는 포인터 변수로, msg와 따로 작동하는 것 아닌가요..? p가 바뀐 것이지 배열 자체가 바뀐 것은 아니니까요..! 왜 msg도 EXBM으로, 즉 A->B로 바뀌게 되는건지 궁금합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 회원가입 프로그램 작성의 File에 저장하는 단계에서 저는 예외 처리하라고 뜹니다. 어떻게 보면 당연한건데 영한님의 IDE에서는 Main에서 예외 처리 오류가 뜨지 않는데 이 부분이 궁금합니다! + 코드를 똑같이 옮겨도 제 프로젝트에선 예외 처리 오류가 뜨네요.
강의는 printf("%s\n", tbl[2]);로 되어있고 학습 자료 pdf파일은 printf("%c\n", *(*pp)[2]);라고 되어 있습니다. 만약 pdf 파일처럼 printf("%c\n", *(*pp)[2]); 라면 N이 출력되는 건가요? 아래 이 문제 관련 질문 주신 다른 분의 답변도 봤는 데 printf("%s\n", tbl[2]);여기서 W가 출력되는 게 잘 이해가 되지 않습니다. 더 쉽게 설명이 가능할까요?
질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요. 시간이 없는데 너무 번잡해서요
안녕하세요, 좋은 강의 감사합니다. 다름이 아니라, 18분 50초 경에 compute(2)가 compute(1)+compute(-1)이 된다고 한 것까진 이해가 되는데, 왜 그 둘의 합이 0이 되는지 이해가 되지 않습니다. compute(-1)이 왜 그 값이 -1 되나요??
마지막 줄 tbl[2]가 왜 NW가 아니라 W인가요?챗지피티도 NW라고 하는데요... 질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
셋째줄에서 B를 처리한 것은 해당 프린트문에서만 해당되는것처럼 생각되는데 msg의 배열에 영향을 주게되어 EXBM이 되는게 맞는건가요...? 해당 줄에서만 영향을 줬다고 생각하게 돼요. 질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.