Im Visual Studio zum Beispiel kann man jeden Thread zu jeder Zeit einfrieren/auftauen. Ist es möglich, dies programmatisch zu tun, um einen Stresstest für Threaded-Code zu erstellen? Wenn ein Thread zufällig für einen zufälligen Zeitraum eingefroren werden könnte, würde er die Synchronisationslogik wirklich ausüben.Ist es programmgesteuert möglich, Threads unter Windows zu fixieren?
4
A
Antwort
3
Sie können dies mit SuspendThread & ResumeThread tun, benötigen Sie die Thread-Handle, die Sie erhalten, indem Sie OpenThread aufrufen. Die thread functions Seite auf msdn ist eine gute Ressource für diese Art von Sache.
1
Sie können eine Thread
erstellen, die zufällig Thread's
von ThreadPool
wählt und sie für eine zufällige Zeitspanne in den Ruhezustand versetzen. Wenn Sie danach suchen.
selbst wenn sie nur suspendiert werden und 'sofort' wieder aufgenommen werden, würde dies wahrscheinlich nichtdeterministische Verzögerungen liefern. – JustJeff
@JustJeff sehr wahr – Mayank
Nicht alle Threads sind Teil eines Thread-Pools. Und Sie führen keine Verzögerungen bei Aufgaben ein (um auf Rennbedingungen zu testen), Sie verbrauchen nur den Thread-Pool. -1 –