0

필자의 코드에서는 성능상의 이유로 인해 반복적 인 느린 종속 객체 인스턴스화를 방지하기 위해 ArrayAdapter.getView()에 대한 호출이 synchronized으로 표시되어 동시에 실행되지 않는다고 가정하는 것이 대단히 도움이된다는 것을 발견했습니다.ListAdapter.getView()를 동기화하기 위해 성능이 저하됩니까?

안드로이드가 getView에 멀티 스레드 호출을 발행하고 synchronized 키워드를 적용하면 성능이 저하된다고 생각할만한 이유가 있습니까?

답변

5

getView()은 주 응용 프로그램 스레드에서만 호출됩니다. 기묘한 이유로 사용자가 백그라운드 스레드에서 직접 호출하지 않는 한. 따라서 동기화가 필요없고 오버 헤드가 추가됩니다.

+0

빠른 답변 감사드립니다. Android API에 시스템이 멀티 스레드를 사용하기 위해 현재 또는 향후 개정판을 생성하지 않는다고 언급되어 있습니까? –

+1

http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html#Threads - "이 스레드는 이벤트를 적절한 사용자 인터페이스 위젯으로 보내고 있기 때문에 매우 중요합니다. 드로잉 이벤트이며, 애플리케이션이 Android UI 툴킷의 구성 요소 (android.widget 및 android.view 패키지의 구성 요소)와 상호 작용하는 스레드이기도합니다. " 다중 코어는 스폰하는 백그라운드 스레드와 함께 사용됩니다. UI는 당분간은 단일 스레드로 유지됩니다. – CommonsWare

+0

정보를 제공해 주셔서 대단히 감사합니다! 내 질문에 신경 쓰지 않는다면 향후 릴리스에서 단일 스레드로 남아있는 UI에 대한 정보의 출처는 무엇입니까? –

관련 문제