2012-07-30 4 views
0

Android에서 스레드 우선 순위는 어떻게 관리됩니까? (또는 Android의 스레딩 정책은 무엇입니까?) GUI 스레드에 더 높은 우선 순위가 할당됩니다. 맞습니까?Android 스레드 우선 순위

finalize()이 권장되지 않으므로 (네이티브) 리소스를 정리하기 위해 별도의 스레드를 만드는 응용 프로그램을 보았습니다. 그러나 정리 스레드가 자주 실행되지 않기 때문에 메모리 누출 (또는 메모리 비 효율성)이 여전히 있습니다.

finalize()을 사용하지 말라는 조언을 무시하는 일부 응용 프로그램은 최종자를 사용하여 리소스를 정리합니다. 그래서 파이널 라이저 스레드가 어떻게 스케줄링되는지 궁금합니다. 관리되는 리소스 또는 기본 리소스를 해제하는 것이 안정적인 방법입니까?

+0

이 글은 내가 이스트를 배우기를 원한다.

+0

왜 마틴 제임스인가? iOS에서 스레딩 정책이 매우 명확합니까? – dacongy

+0

아무 생각이 없다 리소스를 정리하기 위해 별도의 스레드를 사용한다는 생각이 맞습니다. (관리되는 GC 메커니즘의 ouside), 조금 이상합니다. :) –

답변

0

다른 스레드에서 작업 할 때 AsyncTask를 사용하는 것이 좋습니다. AsyncTask는 사용하기가 쉽고 자바의 가장 큰 장점 중 하나라고 말할 수 있습니다. 나는 obj-c에서 그것을 정말로 놓친다.

비동기 작업은 당신이 직업 당신이 무엇을 스레드가 수행 한 후 원하는 청소를 할 수있는

onPostExecute(){} 

방법

을 얻었다. AsyncTask를 약 tuts와

http://labs.makemachine.net/2010/05/android-asynctask-example/

http://marakana.com/s/video_tutorial_android_application_development_asynctask_preferences_and_options_menu,257/index.html

링크.

우선 순위 : android의 스레드는 자바의 스레드이며 0에서 10까지의 우선 순위를가집니다. 원하는대로 각 스레드에 대해 설정할 수 있습니다.

finalize(); 

당신은이 방법을 사용하지 않아야합니다. 이미 말했듯이, 스레드 대신 AsyncTask 클래스를 더 잘 사용해야합니다.

+0

1. finalize()가 리소스 정리를위한 신뢰할 수있는 메커니즘이 아닙니까? 2. 파이널 라이저 스레드는 어떻게 스케줄됩니까? 3.이 특정 관리 Java 객체가 도달 할 수 없을 때 "이 원시 리소스 부분을 릴리스해야한다는 의미"를 어떻게 표현할 수 있습니까? – dacongy