안녕하세요. 요즘 날씨도 추운데 감기 안걸리셨나 모르겠네요.




다름이 아니라 지금 개발하고 있는 프로그램에서 AsyncTask를 통해 스레드를 구현하여 돌리고 있습니다.


그런데 이 AsyncTask가 어느정도 개수가 늘어나면 수행되지 않고 대기하다가 다른 스레드가 종료되면 실행된다고 하더군요.


AsyncTask가 동시에 수행할 수 있는 스레드의 한계가 있다고 합니다.




현재 프로그램에서 사용되는 스레드는


TCP 서버

UDP 서버

UDP Multicasting Sender

연결된 목록 Aging - (일정 시간동안 멀티캐스팅패킷이 안오면 연결 끊김 확인)


이 네가지가 기본적으로 동시에 돌아가고 있습니다.


그리고 추가적으로 상황에 따라서 몇개의 스레드가 추가되고 있는데요,


대충 보니 5개 정도까지는 원활하게 진행되지만 그 이상이 되면 대기하기 시작하더군요.




AsyncTask가 아닌 일반적인 Thread-run형식의 스레드를 사용하면 더 많은 스레드를 돌릴 수 있나요?


아니면 다른 방법을 통해 좀 더 많은 스레드를 동시에 수행시킬 수 있는 방법이 있나요?