Was ist die am wenigsten schreckliche Art zu implementieren "alle Threads auf Panik" wickeln? Ich möchte, dass jeder Thread (Versuch) in Panics und SIGINTs (und SIGKILLs?) In Würde stirbt.Wie alle Threads auf Panik abwickeln?
Es scheint nicht, gibt es eine Rost-Möglichkeit, Threads zu unterbrechen, also denke ich, dass ich ein Merkmal ähnlich runOneStep
implementieren würde und meine Threads einen boolean überprüfen oder libc Interrupt-Behandlung betrachten.
Ich habe gesehen How can I cause a panic on a thread to immediately end the main thread?, die im Grunde die hacky Art der Einstellung ist. Ich habe auch Thread::cancel() support gesehen.
Könnten Sie ein bisschen mehr auf Ihr Ziel erweitern? Da Sie den verlinkten Forum-Beitrag von Internals bereits gelesen haben, verstehen Sie, warum etwas wie "Thread :: cancel" eine schlechte Idee wäre. Was ist los mit dem Beenden des Programms? – Shepmaster
Ich habe Aufräumarbeiten an einigen Threads, die ich sehr gerne ausführen möchte. Eine separate Programmüberwachung für die Gesundheit des Benutzers zu haben, würde funktionieren, aber ich denke, das bringt mehr Komplexität. Diese Art von Sache in Java würde von einem ShutDownHook zur Verfügung gestellt werden, aber das ist etwas Laufzeit Magie. – mfarrugi