이건 원인이라기보단 하나의 결과지. 싱글스레드내에서 await을 하면 그 특정 프로시저에서는 (메인 콜스택 한정)에서는 mutex 비스무리한 효과가 나오는거지.
멀티스레드로 돌렸을 때에도 await이 lock역할을 한다면 그건 mutex (혹은 Java의 syncronized)라는거가 될 수 있는데, 두개는 애초에 사용 목적이 다르니..ㅋㅋ;
익명(211.209)2023-07-11 11:42
답글
뭐 node 멀티스레드에서 await으로 mutex를 만들어서 쓰긴하는데 원론은 다르긴하지
익명(39.7)2023-07-11 11:43
블로킹이 일어날수가 없음
익명(60.253)2023-07-11 10:29
답글
컨텍스트 스위칭이 일어나야 뮤텍스를 씀
익명(60.253)2023-07-11 10:31
답글
await이 블로킹이 일어나지 않는다는교?
걍 도메인이 달라서 비유는 불가능하군ㅇㅋ
익명(39.7)2023-07-11 10:35
어디서 주워들은 단어 총집합해서 헛소리하는게 진짜 꿀밤 마렵네 ㅋㅋ
익명(218.51)2023-07-11 10:41
답글
똑똑한 네가 잘 설명해줘바바
익명(39.7)2023-07-11 11:08
싱글스레드에서 뮤텍스 시발 ㅋㅋ
익명(115.94)2023-07-11 10:56
답글
원론적으론 다중스레드에서 병렬처리중 프로세스 동기화 문제를 해결할때 mutex써서 잠구는거잖아
그냥 비유를 든거지 왤케 화가낫노
익명(39.7)2023-07-11 11:06
비동기, 동기, 블락킹, 논블락킹.. 헷갈릴만하지
익명(211.209)2023-07-11 11:04
답글
ㄹㅇ js에서도 동기 비동기 블락킹 논블라킹 다쓰이는데;
익명(39.7)2023-07-11 11:07
답글
js에서 블락킹이 쓰이냐? 환경들이 다 논블락킹이던데.
익명(211.209)2023-07-11 11:19
블로킹이아님 논블락킹인데 동기식으로 갈뿐이지 - dc App
익명(sea715)2023-07-11 11:23
답글
디버깅모드로 프라미스 올 찍고 프라미스 안의것들을 async await걸고 어케 돌아가나 봐보셈 - dc App
익명(sea715)2023-07-11 11:24
답글
너가 정의하는 블락킹, 논블락킹에 대한 정의가 애매하긴 한것같은데..
하이레벨에서 소프트웨어적으로 프로시저를 점유한다는건 일반적으로 블락킹이라고 부르지 않는듯.
익명(211.209)2023-07-11 11:33
답글
그건 그냥 비동기 컨트롤 플로우에 대한 내용인것같고.. 그리고 '공유 자원 점유'에 대한 핀트가 아니라 '프로시저' 컨트롤 핀트기 때문에.. 뮤텍스랑은 더더욱 안어울리는듯?
블락킹, 논블락킹은 그것보다 훨씬 로우레벨로 구분될걸. 아마 epoll같은 I/O 컨트롤 api를 사용해서 처리하는것으로 암. 그럼 컨텍스트 스위칭 없이 인터럽션으로 관리하는것으로 알고있고..
님이 말하는 promise같은 모델들은 좀 다른 핀트인듯. 비동기 컨트롤을 해결하기 위해 관리할 수 있는 wrapping한 모델이라고 해야하나.. 만약 블락킹을 비스무리라고 한다면 구현하려면 실질적으로 lock이라도 걸어줘야할텐데 그런건 없고, 걍 각 환경 스펙에 맞춰 내부적으로 동작하는 큐(이벤트 루프같은거)에 담겨서 프로시저만 컨트롤 되는것 뿐이니..
익명(211.209)2023-07-11 11:46
답글
이런 말도 안 되는 질문을 해도 이렇게 성심성의껏 답변해주는 사람 보면 ㄹㅇ 신기함
나도 이런 인내력과 친절함을 길러야지..
익명(218.51)2023-07-11 11:48
답글
나도 누군가가 내가 가지고있는 오개념을 지적해줬으면 하는 맘으로 쓰는거임. 내말 믿지마.
익명(211.209)2023-07-11 11:48
답글
async/await가 그냥 promise 신태틱 슈거에 불과하니 promise가 어떻게 돌아가는지만 알면 이딴 질문이 나올 수가 없고
promise callback 구조를 알면 당연히 논블라킹이라는걸 알테고 그러면 뮤텍스니 뭐니 하는 헛소리는 애초에 나올 수가 없고
얘는 promise까지 이해 못 하고 있다는거니 이것부터 설명을 해야 한다는건데 거기서 대부분 설명해주길 포기함. 가망이 없으니까
근데 그걸 차근 차근 길게 설명해주는게 대단해보여서 그럼
익명(218.51)2023-07-11 11:51
답글
내가 알고있는 블락 논블락은
함수가 끝날때까지 제어권을 안 넘겨주는거 = 블락
이었는데 로우레벨 단위에서 블락을 해야 블라킹이구나
그럼 js에서 블라킹/논블라킹 의논하는건 의미가 없겠구만
익명(39.7)2023-07-11 11:52
답글
대체 218.51은 어떤 환경에서 살고 어떤 학교를 나와 어디 다니길래 학부생수준의 지적 허영심을 갖고있는거냐..ㅋㅋ
async await이 promise 신태틱슈가고 콜백처리용then 쉽게 바꿔준걸 누가 모르니.,.?
mdn 공식문서랑 06년ibm에서 blocl/nonblock 설명한거 읽어는 봤어? 개념적인 연결이 있는것 같아서 질문했는데 디시스럽긴하다
익명(39.7)2023-07-11 11:58
답글
내 댓글에서 써서 알람 존나울리잔아 - dc App
익명(sea715)2023-07-11 11:59
답글
나는 하이레벨에서 코딩할 때는 블락킹/논블락킹을 구분하는게 크게 의미없다고 생각함. (코딩 스타일이 차이가 나긴 하는데.. 요즘 프레임워크들이 다 잘나와있어서 비슷하게 할 수 있음 nest.js같은것처럼)
그리고 너가 이런이야기를 꺼낸것도 아마 공유자원접근이나 비동기 컨트롤에 대한 니즈가 필요하다고 생각해서 정리하면서 이런 이야기를 끝낸것같은데..
그래서 블락킹/논블락킹이 구분하는게 중요하다기보단 그런걸 어떤 도구로 컨트롤 할지 고민하는게 주요할듯. promise, async/await있다고 해서 공유자원 접근 안되는것도 아니고 비동기 컨트롤도 할 수 있는건 아니니까.. 결국 뭔가 하나의 전반적인것들을 관리하는 관리자같은게 필요하긴 할거임..
익명(211.209)2023-07-11 11:59
답글
너가 정말 js의 event loop와 worker thread 구조를 이해하고 있고, 너가 정말 논블라킹이라는걸 이해하고 있다면
최소한 mutex라는 단어 자체는 아예 나올 수가 없지. 마치 쓰레드 얘기하고 있는데 system bus를 얘기하는 것처럼 서로 아예 레벨이 다른 단어니까
익명(218.51)2023-07-11 12:03
답글
요런 케이스들은 목적과 수단을 햇갈리기 쉽고, 그래서 자연스럽게 나올 수 있는 질문같은데 너무 싸우지들 마쇼 ㅎㅎ;;
뮤텍스가 왜 나와 시벌 공부 똑바로 안해?
동기적으로 기다리느라(lock)변수 참조를 못하는거 아님?
await(뮤텍스)로 받아오지 않으면 예상치 못한 결과(undefind)를 뿜자나!
이건 원인이라기보단 하나의 결과지. 싱글스레드내에서 await을 하면 그 특정 프로시저에서는 (메인 콜스택 한정)에서는 mutex 비스무리한 효과가 나오는거지. 멀티스레드로 돌렸을 때에도 await이 lock역할을 한다면 그건 mutex (혹은 Java의 syncronized)라는거가 될 수 있는데, 두개는 애초에 사용 목적이 다르니..ㅋㅋ;
뭐 node 멀티스레드에서 await으로 mutex를 만들어서 쓰긴하는데 원론은 다르긴하지
블로킹이 일어날수가 없음
컨텍스트 스위칭이 일어나야 뮤텍스를 씀
await이 블로킹이 일어나지 않는다는교? 걍 도메인이 달라서 비유는 불가능하군ㅇㅋ
어디서 주워들은 단어 총집합해서 헛소리하는게 진짜 꿀밤 마렵네 ㅋㅋ
똑똑한 네가 잘 설명해줘바바
싱글스레드에서 뮤텍스 시발 ㅋㅋ
원론적으론 다중스레드에서 병렬처리중 프로세스 동기화 문제를 해결할때 mutex써서 잠구는거잖아 그냥 비유를 든거지 왤케 화가낫노
비동기, 동기, 블락킹, 논블락킹.. 헷갈릴만하지
ㄹㅇ js에서도 동기 비동기 블락킹 논블라킹 다쓰이는데;
js에서 블락킹이 쓰이냐? 환경들이 다 논블락킹이던데.
블로킹이아님 논블락킹인데 동기식으로 갈뿐이지 - dc App
디버깅모드로 프라미스 올 찍고 프라미스 안의것들을 async await걸고 어케 돌아가나 봐보셈 - dc App
너가 정의하는 블락킹, 논블락킹에 대한 정의가 애매하긴 한것같은데.. 하이레벨에서 소프트웨어적으로 프로시저를 점유한다는건 일반적으로 블락킹이라고 부르지 않는듯.
그건 그냥 비동기 컨트롤 플로우에 대한 내용인것같고.. 그리고 '공유 자원 점유'에 대한 핀트가 아니라 '프로시저' 컨트롤 핀트기 때문에.. 뮤텍스랑은 더더욱 안어울리는듯?
차라리 코루틴이라고 말하는게 더 어울리지 않을까 싶기도하네
promise가 fullfill이나 reject 될때까지 async함수를 멈춘다 해서 블락킹인줄 알았는데 논블락이었구나? 한수 배워간당
블락킹, 논블락킹은 그것보다 훨씬 로우레벨로 구분될걸. 아마 epoll같은 I/O 컨트롤 api를 사용해서 처리하는것으로 암. 그럼 컨텍스트 스위칭 없이 인터럽션으로 관리하는것으로 알고있고.. 님이 말하는 promise같은 모델들은 좀 다른 핀트인듯. 비동기 컨트롤을 해결하기 위해 관리할 수 있는 wrapping한 모델이라고 해야하나.. 만약 블락킹을 비스무리라고 한다면 구현하려면 실질적으로 lock이라도 걸어줘야할텐데 그런건 없고, 걍 각 환경 스펙에 맞춰 내부적으로 동작하는 큐(이벤트 루프같은거)에 담겨서 프로시저만 컨트롤 되는것 뿐이니..
이런 말도 안 되는 질문을 해도 이렇게 성심성의껏 답변해주는 사람 보면 ㄹㅇ 신기함 나도 이런 인내력과 친절함을 길러야지..
나도 누군가가 내가 가지고있는 오개념을 지적해줬으면 하는 맘으로 쓰는거임. 내말 믿지마.
async/await가 그냥 promise 신태틱 슈거에 불과하니 promise가 어떻게 돌아가는지만 알면 이딴 질문이 나올 수가 없고 promise callback 구조를 알면 당연히 논블라킹이라는걸 알테고 그러면 뮤텍스니 뭐니 하는 헛소리는 애초에 나올 수가 없고 얘는 promise까지 이해 못 하고 있다는거니 이것부터 설명을 해야 한다는건데 거기서 대부분 설명해주길 포기함. 가망이 없으니까 근데 그걸 차근 차근 길게 설명해주는게 대단해보여서 그럼
내가 알고있는 블락 논블락은 함수가 끝날때까지 제어권을 안 넘겨주는거 = 블락 이었는데 로우레벨 단위에서 블락을 해야 블라킹이구나 그럼 js에서 블라킹/논블라킹 의논하는건 의미가 없겠구만
대체 218.51은 어떤 환경에서 살고 어떤 학교를 나와 어디 다니길래 학부생수준의 지적 허영심을 갖고있는거냐..ㅋㅋ async await이 promise 신태틱슈가고 콜백처리용then 쉽게 바꿔준걸 누가 모르니.,.? mdn 공식문서랑 06년ibm에서 blocl/nonblock 설명한거 읽어는 봤어? 개념적인 연결이 있는것 같아서 질문했는데 디시스럽긴하다
내 댓글에서 써서 알람 존나울리잔아 - dc App
나는 하이레벨에서 코딩할 때는 블락킹/논블락킹을 구분하는게 크게 의미없다고 생각함. (코딩 스타일이 차이가 나긴 하는데.. 요즘 프레임워크들이 다 잘나와있어서 비슷하게 할 수 있음 nest.js같은것처럼) 그리고 너가 이런이야기를 꺼낸것도 아마 공유자원접근이나 비동기 컨트롤에 대한 니즈가 필요하다고 생각해서 정리하면서 이런 이야기를 끝낸것같은데.. 그래서 블락킹/논블락킹이 구분하는게 중요하다기보단 그런걸 어떤 도구로 컨트롤 할지 고민하는게 주요할듯. promise, async/await있다고 해서 공유자원 접근 안되는것도 아니고 비동기 컨트롤도 할 수 있는건 아니니까.. 결국 뭔가 하나의 전반적인것들을 관리하는 관리자같은게 필요하긴 할거임..
너가 정말 js의 event loop와 worker thread 구조를 이해하고 있고, 너가 정말 논블라킹이라는걸 이해하고 있다면 최소한 mutex라는 단어 자체는 아예 나올 수가 없지. 마치 쓰레드 얘기하고 있는데 system bus를 얘기하는 것처럼 서로 아예 레벨이 다른 단어니까
요런 케이스들은 목적과 수단을 햇갈리기 쉽고, 그래서 자연스럽게 나올 수 있는 질문같은데 너무 싸우지들 마쇼 ㅎㅎ;;
해당 댓글은 삭제되었습니다.
이런거보면 C#이 전파시킨게 참많어..
https://softwareengineering.stackexchange.com/a/377514
진짜
원조는 ML이고 사실상 처음 도입한건 하스켈이라고 함
lock 나오는 게 병신인 게 일단 선점적, 협조적 개념 자체가 없는 거라 더 이상 대화할 가치가 단 하나도 없음
a to z 디 설명해야 하는데 돈 받고 과외해주는 것도 아니고 ㅋㅋ
본인이 아는것이 전부인 부류
전공 학부생 1~2학년 수준말하면서 허영심 좆되노ㅋㅋ
본문이 그 전공 1-2 수준도 안 되는 질문인데 ㅋㅋ 버러지 새끼들 염병떨고 자빠졌네 ㅋ