작성
·
44
0
TLS를 사용하면 공용 공간에 있는 데이터를 최대한 많이 자신의 쓰레드로 가져와서 각각 처리하고 다시 돌려주는걸로 이해를 했는데
그럼 나중에 각각의 쓰레드에서 처리하고 난 결과가 서로 상충되는 경우가 나타날수도 있지 않나요?
아니면 한명씩 싱글 쓰레드로 처리하는데 가져오는 데이터 양이 많아져서 처리속도가 빨라지는것이라고 이해해야 할까요?
1
Rookiss
2021.03.15
데이터를 갖고 간다는게 의존성이 서로 묶여 있는 데이터를
각자의 TLS로 갖고 가라는 것이 아니고
독립적으로 사용할 수 있는 (Buffer라거나) 데이터를 갖고 가는 것이라 상관없습니다.
그리고 애당초 TLS에 자신만 사용할 객체를 할당할 수도 있구요.
위 글에 대하여 이렇게 답변을 주셨습니다.
이에 대하여 궁금한 점이 독립적으로 사용할 수 있는 데이터를 갖고 가서 처리하는 것이라면 TLS를 사용하지 않고도 처리하면 되는 것이 아닌가요?
위 과정에서 처리한 정보들이 계속해서 저장되어야 하기 때문에 TLS가 의미가 있는 것인지..
lock을 걸어 처리하고 있는 복잡한 일(의존성 있는 데이터?)을 가져와서 각자 처리한다는 내용이 잘 이해가 안되네요 ㅠㅠ
답변 2
0
4명이서 식사를 하는데 중앙에 반찬에 있다 칩시다.
중앙에 있고 젓가락이 닿는 거리니,
그냥 중앙에 있는 그릇에서 먹어도 되긴 하겠지만 서로 여러모로 불편하겠죠?
보통 그럴 때는 큼지막하게 퍼서 앞접시에 왕창 옮겨 놓고, 자기 것을 야금야금 먹습니다.
TLS는 비유하자면 앞접시 같이 사용할 수 있는 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 동혁님.
TLS 관련한 질문에 대해 몇 가지 유사한 질문과 답변을 찾아보았습니다. 아래 링크들은 유사한 주제에 대한 답변을 포함하고 있으니 참고해보시길 바랍니다.
동혁님이 말씀하신 사항을 종합하면 TLS는 각 쓰레드가 독립적으로 데이터를 처리하여 경합을 줄이고 효율성을 높이기 위한 방법입니다. 독립적으로 사용 가능한 데이터를 TLS로 처리하는 이유는 경합을 줄이며, 데이터가 원래 위치에 반영되기 전까지 쓰레드 간의 충돌을 막기 위함입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.