2014-05-11 2 views
6

android에 스레드 제한이 있습니까?안드로이드에 스레드 제한이 있습니까?

응용 프로그램에서 많은 스레드를 만들고 스레드 수를 컴파일 할 때 알 수 없습니다. 허용 된 스레드 수는 어떻게 계산합니까?

내가 받고 있어요 :

05-11 16:24:19.441 11131-11194/? E/dalvikvm﹕ Thread creation failed (err=Invalid argument) 
05-11 16:24:19.461 11131-11131/? A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1), thread 11131 (id.mykeyboard) 

그것은 내가 그것을 처리하는 다른 방법을 선택해야하고 접근이 최대 스레드 제한에 따라 같은 예외를 처리하는 좋은 아이디어가 아니다.

+0

왜 자신의 스레드 대신 AsyncTask를 사용하지 않습니까? 최대 스레드에 관한 문제를 해결하는 ThreadPool을 사용합니다. –

+0

AsyncTask는 순수한 Android 제품입니다. 우선 순수 자바 테스트에서 동시성을 테스트해야한다. 나를 위해 쓰레드를 사용하는 것이 더 편합니다. AsyncTask를 사용하여 확실하게 해결할 수 없음 – 4ntoine

+0

그럼 ThreadPool을 사용하지 않는 이유는 무엇입니까? –

답변

0

내가 알고있는 코드에는 최대 적용이 없습니다. 즉, 네트워크 I/O에 대해서도 안드로이드 기기의 CPU 속도가 상당히 낮고 RAM이 상당히 제한적이기 때문에 수익 감소가 상당히 빠르게 이루어질 것이라고합니다.

그렇지 않으면 질문에서 언급 한 다른 "접근 방법"을 사용하십시오.

+0

나는 AsyncTask를 사용해도 문제가 해결되지 않는다고 이미 대답했다. 풀 사용 (AsyncTask 또는 ThreadPool의 경우)은 N 개의 스레드 만 동시에 실행한다는 것을 의미하며 호출 시간을 예상대로 줄이지 않습니다. – 4ntoine

+0

알겠습니다. 알려 주셔서 고맙습니다. 나는 그것을 보지 못했다! 나는 그 단락을 편집 할 것입니다. – explodingcreeperssss

관련 문제