inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[Rookiss University] UE5 Lyra 클론 코딩 (Haker)

AssetManager

AddLoadedAsset 쓰레드 부분 이해가 안갑니다.

해결된 질문

60

hjsss

작성한 질문수 1

0

LoadedAssets에 동시접근하는 이슈를 막기 위해, 언리얼 에디터 로드 전에는 쓰레드가 안전하지 않아서라고 말씀하셨는데

AddLoadedAsset을
GetAsset과 GetSubclass 함수에서 호출할텐데
GetAsset과 GetSubclass 함수를 여러 쓰레드에서 동시에 호출할 일이나 가능성이 있나요?

그리고 에디터가 로딩중이라 GC시스템이등이 초기화되지 않아서 쓰레드가 safe하지 않을때는 쓰레드가 의도하지 않은 메모리에 접근할 확률이 있는지도 궁금합니다 (왜 safe하지 않은지가 궁금해요!)

c++ unreal-engine

답변 1

1

Liu

멀티 스레드 관련 내용은 난이도가 높아서 강의에서는 간단하게 에디터 로드 중으로 말씀드렸었는데 에디터 로드 과정에서 쓰레드 문제는 좀 복잡해서 다른 예시로 알려 드릴게요.

어떠한 에셋을 로드하는 과정 자체를 언리얼에서는 게임 스레드 말고 다른 스레드로 Task 형태로 던져서 시킬 수가 있어요.
만약에 100개를 로드해야 한다고 가정하면 20개씩 다른 스레드로 Task 형태로 던지면 정말 속도가 빠르거든요.

이렇게 로드하면 문제가 로드에 대한 데이터를 가지고 있는 배열에서 경쟁 상태 문제가 발생합니다.

그래서 락 방식으로 안전하게 라이라는 처리 한거에요.

에디터 로드 중에 저희가 임의로 모듈 단계에서 뭔가 건드리면 의도치 않을 수 있긴 한데 이것도 경우의 수도 너무 많고 어려워서 일반적으로 고려하지 않으셔도 괜찮습니다.

B_TeleportToUserFacingExperience가 추가로 생성되지 않습니다.

0

51

2

.

0

55

1

SpawnDefaultPawnAtTransform_Implementation이 호출되지 않습니다.

0

56

2

Input Subsystem 에서 오류가 발생합니다

0

62

1

7강 GameMode와 Modules관련 질문드립니다.

0

52

1

LyraFrontEnd 에서 로딩화면에서 넘어가지 않는 원인이 뭔지 질문드립니다.

0

81

2

리소스 이주했는데 안보이는데 어떻게 해야하나요?

0

84

3

TakeFromAbilitySystem 함수에서 Array 에 대한 remove 는 수행하지 않나요?

0

55

1

CircumferenceMarkerWidget의 bReticleCornerOutsideSpreadRadius 초기화 관련

0

58

1

Pawn 교체, Possess 후 위젯이 이전 값(상태)을 잘못 보여줄 때 처리법이 궁금합니다.

0

72

2

Pawnextension#3 9:19 질문이 있습니다.

0

60

2

Experience 재시작

0

77

2

Log 파트에서 Subtitution Macro Call 를 사용하는 방법이 무엇인가요?

0

79

2

설치후 빌드하는데 에러가 발생하고 인텔리센스도 잘 활성화되지 않습니다.

0

200

1

FPerContextData에 대해 질문이 있어요

0

47

2

OnGameFeatureActivating와 WorldContext관해 질문 있습니다.

0

66

1

GameFeature Action 및 Common UI Widget 생성 관련 질문

0

78

1

가비지컬렉션 관련 질문있습니다.

0

94

3

Travel관련해서 질문 있습니다.

0

59

1

IMC가 먹통이에요

0

83

2

PawnExtension #3 에서 말한 라이라 공식문서가 뭔가요?

0

64

1

PawnExtensionComponent::SetPawnData에서의 CheckDefaultInitialization

0

54

1

미니맵 제작

0

84

2

UGameUIManagerSubsystem::ShouldCreateSubsystem 이상한 것 같은데요

0

74

2