1. 성능상 이점이 미미할 가능성이 높음
잘 활용하면 좋기야 한데, 고려해야할 변수가 너무 많음
익히 알려진 문맥교환이나 경합상태 말고도 운영체제 스케줄링이나 하드웨어에 따라서도 영향을 상당히 받는다고 함.
c#처럼 Parallel 클래스로 api를 만들어 줬다면 써볼만 할 것 같은데,
직접 스레드 분할해서 만들어보니까 경우에 따라 차이가 너무 심한듯
그리고 멀티스레드를 써서 이점을 얻을 수 있는 분야에도 제한이 있는 등
2. 고장날 가능성이 너무 높음
단적인 예로,
if (obj != null) {
obj.call();
}
이런 상식적인 코드도 멀티스레드 상태에서는 위험한 코드다.
걍 내 생각임
잘 하시는 분들은 잘 할거임
주변에서는 잘하는사람 못봄
개인적으로 관심있어서 취미로 공부하는데 이거 고려할게 너무 많음,,, 취미니까 건드려보는거지 솔직히 일로 하라고 하면 못할거같애
자신이 멀티스레드 잘한다, 잘 쓰고 있다 라고 이야기하는 분이 있으면 좀 의심은 해봐야함. 진짜배기일수도 있는데, 그냥 api만 끌어다 쓰는 사람이거나 잠재적인 버그를 매우 많이 만드시는 분일 수가 있음
코틀린 코루틴 ㄱㄱ
그 또한 Go의 은혜겠지요…