2013-06-03 2 views
1

execute() 메서드를 호출하고 executeOnExecutor() 메서드를 사용하여 호출 한 앱에 AsyncTasks이있는 것으로 알려진 성능 결과가 있습니까?execute와 executeOnExecutor를 호출하면 어떤 결과가 발생합니까?

스레딩 문제가 있습니까?

execute()의 직렬 속성을 원하지만 다른 경우에는 executeOnExecutor()에 의해 제공되는 병렬 처리가 필요한 경우가 있습니다. 그러나 나는 이들 중 하나가 불려질 때를 구분할 때 종교적이지 않았다.

성능 저하가있는 경우 적절한시기에 더 적절한 호출을 사용하려고 시도합니다.

+0

Cf [the javadoc] (http://developer.android.com/reference/android/os/AsyncTask.html) : "* 처음 소개되었을 때 AsyncTasks는 단일 백그라운드 스레드에서 연속적으로 실행되었습니다 .DONUT으로 시작하여, 여러 스레드가 병렬로 작동 할 수 있도록 스레드 풀로 변경되었습니다 .HONEYCOMB로 시작하여 병렬 실행으로 인해 발생하는 일반적인 응용 프로그램 오류를 피하기 위해 단일 스레드에서 작업이 실행됩니다. ** 병렬 실행 **을 원한다면 * " – assylias

+0

특히 executeOnExecutor를 사용할 때 코드를 올바르게 동기화하지 않으면 더 많은 스레딩 문제가 발생할 수 있음을 알고 있습니다. – assylias

+1

직렬 및 병렬 실행의 차이점을 이해했습니다. 문제는 응용 프로그램에서 두 유형 모두를 사용하면 서로 간섭하는지 여부와 관련이 있습니다. – lxalln

답변

0

모든 실행 가능한 곳에서 executeOnExecutor()을 사용하도록 변경 한 후에는 성능에서 차이가 없습니다. 좋거나 나쁨.

관련 문제