2016-05-03 13 views
0

Ich möchte sicher sein, ob ich <thread> in meinem Code verwenden soll. Ich schreibe für ein einfaches Konsolenspiel. Es ist so, als würden die Buchstaben, die ich eingegeben habe, von der Oberseite der Konsole herunterfallen und ich kann sie nacheinander entfernen, indem ich jeden Buchstaben in Echtzeit eintippe. (für den Zweck, Namen schnell zu erinnern.)Verwendung von C/C++ <Thread> in meinem Programm?

Ich denke, es sollte es in 2 Teile aufgeteilt werden, die einen Ausdruck der zufälligen Buchstaben, die nach unten fällt (Wenn es den Boden passiert, erhalten -1 von die Lebensanzeige) und der andere wartet auf die Buchstaben, die zur Entfernung verwendet werden sollen.).

Beide scheinen jeden Prozessor in Echtzeit auf der Konsole laufen zu lassen und die Nachrichtenübergabe ist für die Übereinstimmung der Buchstaben notwendig.

+8

Bitte markieren, nicht beide C und C++ als die Antwort unterscheiden. Welche Sprache benutzt du eigentlich? – CoryKramer

+1

Sie haben auch keine tatsächliche Frage gestellt. – NathanOliver

+0

Sollte ich Thread auf meinem Programm verwenden, war es meine Frage. Du hast aber nicht genau gelesen. NathanOliver. – jay

Antwort

1

Beachten Sie, dass Ihre Anwendung zwar scheinbar parallele Vorgänge ausführen muss, dies jedoch nicht automatisch bedeutet, dass Sie mehrere Threads verwenden müssen. Ihre Aufgabe kann einfach in einem einzigen Thread gelöst werden, zum Beispiel mit einer Ereignisschleife.

In der Regel ist Multi-Threading in nur wenigen Situationen nützlich: 1) Sie benötigen eine Rechenleistung, um parallel Berechnungen auf einem Multi-Core-System durchzuführen; 2) Es gibt blockierende Operationen (z. B. Netzwerk- oder Platten-I/O), die andere Teile der Anwendung beeinflussen (z. B. GUI-Reaktionsfähigkeit).

0

Sie könnten Multithreading dafür verwenden, aber ehrlich gesagt, würde ich nicht.

Was Sie sich merken müssen ist, dass eine Zeitperiode, die kurz genug ist, um gleichzeitig mit einem Menschen zu sein, eine kleine Ewigkeit für einen Computer ist. Oder sogar ein langer, je nach Anwendung.

Was wahrscheinlich Ihr Leben ein verdammt viel machen wird einfacher ist so etwas wie dieses (Pseudo-Code):

while (true) { 
    // moves letters down, spawns them at the top, checks if they've fallen off the screen 
    updateFallingLetters(); 
    // polls for input, updates game state accordingly 
    checkIfIHaveInput(); 
    // waits until one thirtieth or one sixtieth or whatever of a second has passed. 
    sleepUntilFrameRateAfterLastIWasHere(); 
} 
+0

) Das obige ist informativer für einen Anfänger wie mich, aber deine Antwort hilft auch. Ich wünschte, ich könnte auch deine auswählen. – jay

Verwandte Themen