쓰레드 2개이상, 같은 변수를 접근할때
이렇게 알고있는데 맞음?
반대로 쓰레드가 1개만 돌거나 여러개더라도 각각 다른변수 접근하면 안걸어도 되는거 맞나여
ㅖ
한 변수를 여러 곳에서 접근할때
접근한다는게 값 안바꾸고 읽기만 해도 걸어야 하나용?
ㅇㅇ 한 스레드가 변수를 읽기만 한다고 해도 다른 스레드에서 그 도중에 그 변수에다 값을 써버리면 문제생기니까 꼭 뮤텍스 걸어야됨
단순한 정수형이나 실수는 안 걸어도 되는데 문자열이나 좀 내부적으로 하는 게 많은 타입들은 락 거는 게 좋음. 이런 경우에는 RWLock이라고 따로 있으니 찾아보시길
그 변수를 읽을 찰나에 다른 쓰레드에서 값을 변경할 수 있지는 않은지 생각해보면 됨 예를 들어 100원 남은 계좌에 동시에 100원을 두번 인출해버리면 인출돼버릴 수도 있음
동기화가 필요할때
그 동기화 쓰는게 제가 위에말한 내용이 맞나용?? 더 추가적인 이유가 있진 않져?
semaphore는 프로세스 간 lock
모든 접근이 read면 필요 없음
ㅖ
한 변수를 여러 곳에서 접근할때
접근한다는게 값 안바꾸고 읽기만 해도 걸어야 하나용?
ㅇㅇ 한 스레드가 변수를 읽기만 한다고 해도 다른 스레드에서 그 도중에 그 변수에다 값을 써버리면 문제생기니까 꼭 뮤텍스 걸어야됨
단순한 정수형이나 실수는 안 걸어도 되는데 문자열이나 좀 내부적으로 하는 게 많은 타입들은 락 거는 게 좋음. 이런 경우에는 RWLock이라고 따로 있으니 찾아보시길
그 변수를 읽을 찰나에 다른 쓰레드에서 값을 변경할 수 있지는 않은지 생각해보면 됨 예를 들어 100원 남은 계좌에 동시에 100원을 두번 인출해버리면 인출돼버릴 수도 있음
동기화가 필요할때
그 동기화 쓰는게 제가 위에말한 내용이 맞나용?? 더 추가적인 이유가 있진 않져?
semaphore는 프로세스 간 lock
모든 접근이 read면 필요 없음