2017-12-20 16 views
0

내 게임 프로젝트의 점들에 대해, 사용자에게 전달 된 시간을 표시하기 위해 멀티 쓰레딩을 사용한다. 입력이 끝나기 전에 커서가 사용자 입력과 겹치다. 그래서 내가 밖으로 영향을 미치는 사용자 입력 콘솔에 스레드를 수정하려는프로그래밍에서 쓰레드를 쓰는 동안 쓰레드를 쓰레드로 쓰레드를 쓰는 동안

+0

스레드간에 * 동기화 *가 없으면 "겹침"을 멈출 수 없습니다. 모든 출력 * 및 * 입력을 단일 스레드에서 처리 할 수 ​​있도록 디자인을 다시 생각해보십시오. 그렇지 않으면 콘솔 입력/출력이 처리하기가 매우 어려워집니다. –

+0

다른 콘솔에서도 입력을 입력하고 싶다면 가능합니까? –

답변

0

리눅스 시스템 프로그래밍 책에서 가져온 내 노트에이 같은이며, 필요한 것은 :

Manual File Locking

함수 flockfile() stream이 no가 될 때까지 기다린다. onger 잠긴 잠금 카운트 범프 다음 스트림의 소유 스레드지고, 로크를 취득하고, 결과 :

:

#include <stdio.h> void flockfile (FILE *stream);

함수 funlockfile()는 스트림과 연관된 잠금 횟수를 감소

#include <stdio.h> 

void funlockfile (FILE *stream) 

flockfile (stream); 

fputs ("List of treasure:\n", stream); 
fputs (" (1) 500 gold coins\n", stream); 
fputs (" (2) Wonderfully ornate dishware\n", stream); 

funlockfile (stream); 

희망이 있습니다.

+0

리눅스를 사용하지 않고 윈도우를 사용하고 있습니다. 코드 블럭 어떻게 멀티 쓰레기 인쇄와 스캔 겹침을 피할 수 있습니까? –

+0

대개 windows는 fron xUNIX의 많은 기능을 훔치거나 이미 훔쳐갔습니다. flockfile()과 비슷한 기능을 찾습니다. –