내 코드는 복잡하지는 않지만 간단히 말하자면 여러 개의 go 루틴을 가지고 있고, 모두 다른 tcp 서버를 다이얼링하고 for 루프에서 입력을 읽는다. 스트림 상에 판독 가능한 메시지가 존재한다. 여태까지는 그런대로 잘됐다. 이제는 '고객'의 이전 묶음을 관리하고 사용자가 원할 때 닫습니다. 이를 위해 저는 각 'conn'을 적절한 일상적인 클라이언트와 연결하고이를 닫는 작업을 수행했습니다.conn.read는 다른 이동 루틴을 통해 닫는 conn에서 무한 루프로 간다.
내가 겪고있는 문제는 모든 conn 객체의 close 함수를 호출하자마자 해당 'Read'함수가 빈 문자열을 계속 읽는 무한 루프에 들어간다는 것입니다. 내가 하나를 나타내는 '클래스를'이 한마디로 DR
,
은 내가 routines- https://play.golang.org/p/wq7zt9Kqz7TL 가서 여러의 연결을 처리하고있는 방식과 유사 간단한 코드를 작성 그것의 주소, conn, waitgroup과 원격 서버와 나는 여러 인스턴스를 생성하고 별도의 이동 루틴에서 입력에 대한 처리입니다. 그리고 또 다른 일상에서 내가 그 인스턴스 중 하나를 닫으려고 노력하고있다. 그리고이 read()는 무한 루프에있다.
정확하게 waitgroup을 닫고 있습니까? 샘플 코드가 그것에 대해 아무 것도 말하지 않기 때문에 묻고 있습니다. 또한 서브 루틴을 올바르게 닫으면 샘플 코드가 문서화되지 않습니다. – Fallen