특정 변수를 참조한다 -> 데이터 레이스 이슈 뮤텍스 락을 걸고 특정 변수를 참조한다 -> 퍼포먼스 이슈
다른 방법이..?
댓글 15
atomic 타입 써라
kukyakya(175.126)2016-03-25 19:10
뮤텍스보다 퍼포먼스 면에서 우월함?
익명(110.70)2016-03-25 19:11
컴터 전원 뽑아
ㅇㅇㅇ(14.46)2016-03-25 19:19
다같이 프갤하는 마당에 고수가 어딨음 다 같은 병신이지 ㅋㅋㅋ. atomic 쓰면 당연히 뮤텍스보다 성능이 좋을 수 밖에 없지 프로세스가 잠들 일이 없는데. 혹시나 volatile 쓰라는 책이 있거든 당장 찢어버리고 그게 사람이라면 연을 끊어라.
kukyakya(175.126)2016-03-25 19:23
무한루프 조건문으로 쓰여도 괜찮을정도로 오버헤드 적은 방법이어야하는데
익명(110.70)2016-03-25 19:24
기다려봐 내가 지금 좀 한가하니까 예제코드 짜서 보여줌. 근데 C 쓰냐 C++ 쓰냐? 뭘 쓰던 난 C++11로 짜서 보여줄거긴 한데
kukyakya(175.126)2016-03-25 19:26
위에 volatile 쓰면 안되는 이유 좀...
ㅎㅎ(220.90)2016-03-25 19:27
난 go 씀.. go에선 채널 통신으로 종료 신호를 보내는게 최선의 방법이라고 들었는데 여러개의 고루틴에선 너무 코드가 복잡해지는거같아서 고전적인 방법에서 찾아보는중
익명(110.70)2016-03-25 19:29
나도 go 공부 중인데..ㅎㅎ 방법 찾으면 알려주세요~
ㅎㅎ(220.90)2016-03-25 19:30
볼러타일 왜 쓰면 안됨?
HelloMOTO(mmccio12)2016-03-25 19:32
아 go라면 얘기가 완전 달라지는데... 미안하다 내가 C++빠돌이라 당연히 C/C++일거라고 생각했네.. c/c++에서 멀티쓰레드간의 공유 데이터에 volatile을 쓰지 말라는건 volatile 키워드의 목적이 완전히 다르기 때문이야. volatile은 쓰기/읽기를 컴파일러가 최적화하지 않도록 하는 키워드라 실제 data가 atomic하게 쓰기/읽기가 되는가와는 상관이 없거든. 대부분의 환경에서 bool이나 int류의 fundamental type이 atomic read/write이 되긴 하니까 volatile을 많이들 쓰기는 하지만 용도에 맞는 코드는 아니지.
atomic 타입 써라
뮤텍스보다 퍼포먼스 면에서 우월함?
컴터 전원 뽑아
다같이 프갤하는 마당에 고수가 어딨음 다 같은 병신이지 ㅋㅋㅋ. atomic 쓰면 당연히 뮤텍스보다 성능이 좋을 수 밖에 없지 프로세스가 잠들 일이 없는데. 혹시나 volatile 쓰라는 책이 있거든 당장 찢어버리고 그게 사람이라면 연을 끊어라.
무한루프 조건문으로 쓰여도 괜찮을정도로 오버헤드 적은 방법이어야하는데
기다려봐 내가 지금 좀 한가하니까 예제코드 짜서 보여줌. 근데 C 쓰냐 C++ 쓰냐? 뭘 쓰던 난 C++11로 짜서 보여줄거긴 한데
위에 volatile 쓰면 안되는 이유 좀...
난 go 씀.. go에선 채널 통신으로 종료 신호를 보내는게 최선의 방법이라고 들었는데 여러개의 고루틴에선 너무 코드가 복잡해지는거같아서 고전적인 방법에서 찾아보는중
나도 go 공부 중인데..ㅎㅎ 방법 찾으면 알려주세요~
볼러타일 왜 쓰면 안됨?
아 go라면 얘기가 완전 달라지는데... 미안하다 내가 C++빠돌이라 당연히 C/C++일거라고 생각했네.. c/c++에서 멀티쓰레드간의 공유 데이터에 volatile을 쓰지 말라는건 volatile 키워드의 목적이 완전히 다르기 때문이야. volatile은 쓰기/읽기를 컴파일러가 최적화하지 않도록 하는 키워드라 실제 data가 atomic하게 쓰기/읽기가 되는가와는 상관이 없거든. 대부분의 환경에서 bool이나 int류의 fundamental type이 atomic read/write이 되긴 하니까 volatile을 많이들 쓰기는 하지만 용도에 맞는 코드는 아니지.
내가 더 자세히 설명하는것보다는
http://stackoverflow.com/questions/2484980/why-is-volatile-not-considered-useful-in-multithreaded-c-or-c-programming
여길 참고하는게 낫겠다.
kukyak.. 땡큐...
음 원 질문과 거리가 점점 멀어지는것 같지만 go라고 atomic 타입이 없진 않을테니 계속 딴 주제에 대해 얘기하자면, 각 쓰레드마다 private한거면 TLS 말하는건가? 쓰레드 로컬이고 공유되지 않는 변수면 애초에 volatile일 필요가 없지 않음?
생각해 보니 어느 한쪽에서 쓰레드를 멈출려면 volatile 변수가 공유되는 거라 질문을 지웠는데, 답변이 바로 올라왔네... 답변 감사..ㅎㅎ