010
16.09.2004, 13:07 Uhr
ao
(Operator)
|
Zitat von lubU: |
naja also meines wissen gibt es unter dos multithreading.
|
Ich glaube, du verwechselst da was. Das, was du DOS nennst, ist die Textkonsole von Windows. DOS ist ein veraltetes "Betriebssystem", das von Haus aus tatsächlich kein Multithreading hat.
Du willst ein Konsolenprogramm mit Multithreading, und natürlich geht das.
Weshalb es abstürzt, kann ich nur raten; vielleicht gibt es Probleme dadurch, dass deine beiden Threads konkurrierend auf die Tastatur (getch) und den Bildschirm (gotoxy und printf) zugreifen. Möglicherweise sind diese Funktionen nicht reentrant, d.h. nicht dafür gemacht, dass sie von zwei Threads gleichzeitig ausgeführt werden.
Abhilfe: Alles in einem Thread erledigen bzw. in einer Hauptschleife in main ().
Oder, wenns ein Multithreading-Experiment sein soll, dann musst du die Reentranzprobleme lösen. Multithreading-Programmierung ist sehr interessant, aber nicht trivial. Vielleicht solltest du, bevor du zu programmieren anfängst, noch etwas lesen, bis dir klar ist, was "Reentranz" und "Shared Resources" sind und wie man mit den Mitteln der "Interprocess Communication" threadsicher programmiert.
ao |