tcp 통신 비동기 방식에서 소켓 채널에 read 걸어두면

내부적으로 JVM에서 쓰레드 돌면서 알아서 감지하잖아.

그래서 read()가 성공적으로 발동하면 콜백으로

complete()를 호출해서 그 작업하던 쓰레드가 complete()를 실행하잖아.


근데 연결된 클라이언트가 한 10개라고 하자

그럼 10개가 각각 클라이언트의 소켓 채널에서 read()를 걸면

스레드풀에서 지들끼리 알아서 감지하잖아


근데 complete() 메소드 안에서 다른 클래스의 메소드 실행을 한다고쳐봐


뭐 싱글톤으로 Sex라는 클래스가 있다고 하자
인스턴스는 하나밖에 없겠지?

그리고 sex()라는 메소드가 있다고 하자.


그리고 complete() 콜백 메소드에서 sex()를 실행한다고 할때


만약 저 위에 클라이언트가 모두가 만약 동시에 read()를 받았다고 해봐 그럼 각각 complete()로 진입하잖아.

근데 인스턴스 하나만 있는 클래스의 메소드인 sex()를 실행한건데 이렇게되면 어떤 상황 일어나냐???

누가 점유하는거임?
큐에 들어가서 한놈한놈 대기하게되냐?

근데 그 sex()에서 뭐 sleep()을 쓰면 그 뒤에 대기중인 애들은 다 늦춰지는거지?