TCP 모듈을 만들고있는 중인데요


public class RunThread extends Thread {

  public void run(){

//할일못할일

}

}


public class RecvThread extends Thread {

  public void run(){

//받기 호출

}

}


이렇게 호출하고요 받는쪽에선 따로 만들어진 클래스에서 

in.read()

를 호출합니다.


문제는 in.read()에서 블락이 걸리면서

RunThread도 같이 블락이 걸린다는겁니다.



정확히 얼만큼의 데이터가 서버에서 올지 모르기때문에 리시브를 스레드로 이용해서 하고있구요.

서버는 이전에 만들어 사용했던 범용 C/C++ 서버입니다.


제가 너무 C/C++ 스타일에 습관이 들어서 그런지는 모르겠지만 자바는

당연히 in.read 에서 블락이 걸리면 RunThread.run() 으로 순차될줄 알고 기대했는데

RecvThread,run() 이 함수 끝까지 가지 못하면 RunThread()로 순서가 안넘어 가는겁니까?


아니면 제가 잘못한 무엇이 있는건지요...

해당 함수에서 in.read를 빼면 순차쓰레드로 잘 돌아갑니다.

그런데 블락되면 나머지도 같이 블락됩니다...


혹시 액티비티를 따로 써야한다거나 하는 C와 다른 무엇이 있는지...

ㅡ.,ㅡ