제목이 다소 흐릿 할 수 있습니다. 이것은 내가 의미하는 바입니다 :하스켈의 두 입력을 동시에 기다리는 중
두 가지 방법으로 프로그램에 입력 할 수 있습니다. 첫 번째는 키보드를 통해 getLine
함수를 사용하여 행이 읽힐 때까지 차단합니다. 다른 하나는 TChan
을 통해 말하며, readTChan chan
을 사용하면 채널에 값이 나타날 때까지 블록이 만들어지고 읽히게됩니다.
모두 값을 기다릴 수 있습니다. 단일 스레드를 사용하고 CPU가 100 %로 이동하지 못하도록합니다. 두 값 중 하나를 사용할 수있게되면이 값을 가져와 프로그램을 다시 시작합니다. (두 가지 값 중 어느 것을 수신했는지 알려면 Either
을 사용하십시오.)
이것이 가능합니까?
대단히 감사합니다!
어떻게 IO 스레드 호출의 getline을 가진, 그리고뿐만 아니라 TChan에 그 결과를 넣어 어떻습니까? 그것이 작동해야하는 것처럼 들리는데. – yairchu
정확히 하나의 스레드를 사용하고 싶습니까? 예를 들어, 3 개의 입력을 기다릴 필요가 없다면 어떻게 될까요? 아니면 5? 아니면 10? 왜 임의의 제한 사항입니까? – ADEpt
여러 스레드가 사용되고 있고 CPU가 100 %였던 코드가 있다고 생각합니까? 다른 사람들이 이유를 알 수 있도록 코드를 게시 할 수도 있습니다. 올바른 해결책은 스레드이며 단순히 구현 문제 일 수 있습니다. – Godeke