이게팩트임 진짜 ㅋㅋ
멍청하면 그거밖에 안보이는거임
읽기만 한다면 어떨까?
쓰레드세이프자체가 읽고 쓰고를 생각하고 구현하는건데 읽기만하는것은 그냥 출력이지 머노
읽기만할거면 굳이 몰라도됨 안해도되고 의미없는 코딩길이만 늘어난다
깊은복사가 뭐임
먼소리야 이건 또
넌 머가 이해안가는데
저 3개가 이해가 안대용 송생님
전혀 관계없는것들의 링크
쓰레드세이프가 먼지아냐?
넹 압니당
쓰레드세이프가 될라면 가장 기본적인 조건이머라고생각하냐
Stateless or Stateful인경우 공유자원의 보호 입니당
공유자원의 보호를 할라면 어떻게해야겠어
lock을 걸거나 local sotrage 또는 mem bus lock을 이용합니당
간단하게 생각해라 쓰레드세이프를 따진다는것은 읽고 쓰고가 달라지니까 쓰고할때 변경을 독립적으로 해주면된다는소리다
mem bus lock -> atomic operation이라고 할께용
Read copy update 기법을 말씀하시는건가용
인증용님이 생각하신 쓰레드 세이프는 local storage를 이용한 쓰레드 세이프만을 말씀하신거 같아서요! 예를들어 intrinsic function인 atomic increase는 어떠한 로컬 메모리 없이 버스락으로만 이루어지는 쓰레드 세이프 함수라고 생각합니다아!
결국 어떤 데이터를 카피해서 데이터 엑세스를 분리하여 쓰레드 세이프를 구현하는 방식을 설명하신거 같은데.. 쓰레드 세이프 구현 방식이 워낙 많아서!
쓰레드세이프는 그냥 간단하게 독립시키는거라고생각해라 c에쓰는거 들고오지말고 나도 모른다 그건
독립이 안되고 락을 쓸 수 있잖아요 선생님.. 세마포어라던지.. 뮤텍스라던지..
func A { lock(); 공유자원 access; unlock(); } 이것도 멀티 쓰레드에서 안전한 쓰레드 세이프 함수입니다.
락을걸수있으면 걸고 안되면 깊은복사해줘야겠지
왜 시스템 레벨에서 쓰레드 세이프를 만들때 깊은복사보다 락을 더 선호할까요 선생님
깊은복사가 유리할때와 락이 유리할때가 있을 것 같습니다. 선생님
메모리낭비심하지않겠냐? 그리고 모든게 락이되는게 아니지않냐?
잘 설계된 시스템에서는 모든건 락으로 해결이 됩니다. 선생님 기본적인 spinlock만해도 그냥 while() 주구장창 돌리고 interrupt 꺼버리면 되니까요.. 보통 요즘 컴퓨터에서는 메모리보다 다른걸 보지 않을까요?
락이 안되는 케이스가 뭐가 있을까요.
니가 락으로 해결된다고했다는데 만약에 말이야 객체가 인터페이스필드로 가지고있어 그 객체안에 들은 인터페이스에 락을 어떻게걸건데
언어에 제약이 있는게 아닌 좀더 이론적인? 제너럴하게 설명드리자면 모든 데이터 엑세스는 락이 가능합니다. 언어의 제약때문에 구현을 못하는것과 안되는것은 다르다고 생각합니다.
니는 지금 c를기준으로 말하는데 그게 말할소리냐?
락을걸수없는것은 무조건 깊은복사말고없다
인터페이스 필드라는것은 언어 특징적인 이야기를 하시는거고, 락의 사용 가부는 언어와 상관이 없습니다. C하고도 상관 없습니다.
결국 인터페이스 필드라는것도 이론적으로 "데이터" 집합 안에 들어가는것이고, 머신에서 "데이터"에 접근할 때, 어떠한 락이던 사용 가능합니다.
자바api에서는 불가능하다 자바api에서는 기본적으로 shallow copy만 해줌
예를들어 어떤 Z라는 언어 안에 lock() primitive가 없다고 해서 사람들은 "그러므로 데이터에 락을 사용할 수 없다" 라고 말하지 않습니다.
즉, 정확히 말씀하신건 자바 API로 인터페이스 필드에 대한 쓰레드 세이프를 구현하려면 깊은 복사로 해주어야 한다 라는것이군요 이해 했습니다
다만, 제목에 일반화가 조금(?) 보여 제가 떡밥을 물어버렸습니다 ㅎㅎ
인증용 얘는 지모르는거 나오면 입꾹닫하고 지아는거 나오면 자만심이 하늘을 찌른다 참고해
읽기만 한다면 어떨까?
쓰레드세이프자체가 읽고 쓰고를 생각하고 구현하는건데 읽기만하는것은 그냥 출력이지 머노
읽기만할거면 굳이 몰라도됨 안해도되고 의미없는 코딩길이만 늘어난다
깊은복사가 뭐임
먼소리야 이건 또
넌 머가 이해안가는데
저 3개가 이해가 안대용 송생님
전혀 관계없는것들의 링크
쓰레드세이프가 먼지아냐?
넹 압니당
쓰레드세이프가 될라면 가장 기본적인 조건이머라고생각하냐
Stateless or Stateful인경우 공유자원의 보호 입니당
공유자원의 보호를 할라면 어떻게해야겠어
lock을 걸거나 local sotrage 또는 mem bus lock을 이용합니당
간단하게 생각해라 쓰레드세이프를 따진다는것은 읽고 쓰고가 달라지니까 쓰고할때 변경을 독립적으로 해주면된다는소리다
mem bus lock -> atomic operation이라고 할께용
Read copy update 기법을 말씀하시는건가용
인증용님이 생각하신 쓰레드 세이프는 local storage를 이용한 쓰레드 세이프만을 말씀하신거 같아서요! 예를들어 intrinsic function인 atomic increase는 어떠한 로컬 메모리 없이 버스락으로만 이루어지는 쓰레드 세이프 함수라고 생각합니다아!
결국 어떤 데이터를 카피해서 데이터 엑세스를 분리하여 쓰레드 세이프를 구현하는 방식을 설명하신거 같은데.. 쓰레드 세이프 구현 방식이 워낙 많아서!
쓰레드세이프는 그냥 간단하게 독립시키는거라고생각해라 c에쓰는거 들고오지말고 나도 모른다 그건
독립이 안되고 락을 쓸 수 있잖아요 선생님.. 세마포어라던지.. 뮤텍스라던지..
func A { lock(); 공유자원 access; unlock(); } 이것도 멀티 쓰레드에서 안전한 쓰레드 세이프 함수입니다.
락을걸수있으면 걸고 안되면 깊은복사해줘야겠지
왜 시스템 레벨에서 쓰레드 세이프를 만들때 깊은복사보다 락을 더 선호할까요 선생님
깊은복사가 유리할때와 락이 유리할때가 있을 것 같습니다. 선생님
메모리낭비심하지않겠냐? 그리고 모든게 락이되는게 아니지않냐?
잘 설계된 시스템에서는 모든건 락으로 해결이 됩니다. 선생님 기본적인 spinlock만해도 그냥 while() 주구장창 돌리고 interrupt 꺼버리면 되니까요.. 보통 요즘 컴퓨터에서는 메모리보다 다른걸 보지 않을까요?
락이 안되는 케이스가 뭐가 있을까요.
니가 락으로 해결된다고했다는데 만약에 말이야 객체가 인터페이스필드로 가지고있어 그 객체안에 들은 인터페이스에 락을 어떻게걸건데
언어에 제약이 있는게 아닌 좀더 이론적인? 제너럴하게 설명드리자면 모든 데이터 엑세스는 락이 가능합니다. 언어의 제약때문에 구현을 못하는것과 안되는것은 다르다고 생각합니다.
니는 지금 c를기준으로 말하는데 그게 말할소리냐?
락을걸수없는것은 무조건 깊은복사말고없다
인터페이스 필드라는것은 언어 특징적인 이야기를 하시는거고, 락의 사용 가부는 언어와 상관이 없습니다. C하고도 상관 없습니다.
결국 인터페이스 필드라는것도 이론적으로 "데이터" 집합 안에 들어가는것이고, 머신에서 "데이터"에 접근할 때, 어떠한 락이던 사용 가능합니다.
자바api에서는 불가능하다 자바api에서는 기본적으로 shallow copy만 해줌
예를들어 어떤 Z라는 언어 안에 lock() primitive가 없다고 해서 사람들은 "그러므로 데이터에 락을 사용할 수 없다" 라고 말하지 않습니다.
즉, 정확히 말씀하신건 자바 API로 인터페이스 필드에 대한 쓰레드 세이프를 구현하려면 깊은 복사로 해주어야 한다 라는것이군요 이해 했습니다
다만, 제목에 일반화가 조금(?) 보여 제가 떡밥을 물어버렸습니다 ㅎㅎ
인증용 얘는 지모르는거 나오면 입꾹닫하고 지아는거 나오면 자만심이 하늘을 찌른다 참고해