Thread number가 다 1로 나옵니다

Answer 2
0
안녕하세요, 인프런 AI 인턴입니다. perfecctism님.
현재 발생한 문제는 Swift의 비동기 코드에서 Thread.current를 사용할 때의 제한과 관련이 있습니다. 비동기 코드에서는 직접적인 스레드 관리가 어렵기 때문에 Swift는 이러한 기능 사용을 제한하는 경향이 있습니다. 특히 Swift 6에서는 비동기 코드를 더욱 강화하여 안전성을 높이고 있습니다.
비동기 코드의 특성 및 스레드 정보
- Swift의 비동기 컨텍스트에서
Thread.current를 직접 호출하는 것은 추천되지 않습니다. 이로 인해, 예상하지 못한 동작이나 경고 메시지가 발생할 수 있습니다. 대신 메인 액터나 비동기 작업에 대한 정보를 얻기 위해Task나DispatchQueue와 같은 추상화를 사용하는 것이 좋습니다.
- 비동기 환경에서는 변수의 값을 변경할 때, 어떤 스레드에서 어떤 작업을 수행하는지 명확히 보장하기 어렵습니다. Swift의 Task는 자동으로 적절한 스레드나 큐에서 작업이 수행될 수 있도록 지원합니다.
해결 방법
- 메인 액터 사용: UI 업데이트나 메인 스레드에서 실행이 필요한 작업은
@MainActor를 붙여서 관리할 수 있습니다. 이는 SwiftUI의 주요 작동 방식과 잘 맞습니다.
@MainActor
func someUiUpdateFunction() {
// UI 업데이트 작업
}
- 비동기 콘텍스트 내에서 작업 수행:
.async혹은.await키워드를 사용하여 비동기 과정을 클래스를 관리하는 방법을 권장합니다.
추가로, 비슷한 문제의 해결 방법을 제공하는 다음 답변을 확인해 보시기 바랍니다:
- @State와 @Bindable의 사용 차이점 설명
이미지를 통해 오류 내용과 오류가 발생하는 환경에 대한 정보를 확인할 수 있습니다. 위 내용을 참고해 해결을 시도해 보시고, 추가적인 문제가 발생하거나 다른 궁금한 점이 있으시면 언제든지 질문해 주세요. 저희가 추가적인 도움을 제공하겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
searchable이 화면 하단에 위치해요
0
62
2
warning 하나가 있는 것 같습니다. 해결방법좀 알려주세요
0
79
2
설계 관련하여 참고할 문서나 예제 공유가 가능할까요?
1
72
2
'loadAllPosts' 를 매번 사용해야 하나요?
1
70
2
75강 실시간으로 팔로우수 안늘어나는 이유?
1
135
3
예전코드도 배워야 할까요?
1
137
1
ProfileView에서 toolbar이용시 문제점 발생, 로직이 이해가 되지 않습니다.
0
161
1
62강 Follow, Unfollow기능구현에서,,
0
107
2
애구마선생님, 다음 프로젝트 강의는 언제 올려주세요???
0
108
2
51강 10:22에서 이미지 여러장이 나오지 않아요;;
0
108
2
52강 post데이터가 불러와지지 않아요,,,
0
136
2
ViewModel과 Model 구분 (30강)
1
133
2
바인딩하는 이유
1
94
2
75강 까지 마무리후 소스 오류 사항 문의
0
109
1
SwiftUI main actor 관한 경고 계속 뜹니다.
1
245
2
45강의 에서 Kingfisher 사용후 발생하는 swift6 이슈
1
152
2
19강에서 Encoder()를 사용할 수 없습니다.
1
136
2
40. 강에서 정상작동 안합니다.
0
168
3
프로필 수정 후 변경된 내용을 피드에 바로 반영되도록 하고 싶습니다.
1
134
2
15강에서 발생한 문제에 대해서 질문이 있습니다!
1
301
3
13강 코드 작성 후 피드의 유저 데이터가 보이지 않는 문제
1
218
3
혹시 다음 강의 대략 언제쯤 완료되시는지 알 수 있을까요??
1
167
2
섹션7 뷰 리팩토링 질문있습니다.
0
107
2
firebase에서 데이터를 불러오는데 오류가 발생합니다.
1
297
2

