Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
C# Unsafe Thread Monitoring?
How does the Monitoring class solve the unsafe thread problem in the following example:
class ThreadUnsafe {
static int val1, val2;
static void Go(){
if (val2 != 0) Console.WriteLine( val1 / val2);
val2=0;}
}
Monitor class I should say.
1 Antwort
- ?Lv 5vor 6 Jahren
The variable val2 is not local to the function Go(). So if more than one thread calls Go you could get a division by 0. For example:
Thread 1: Does the test "if(val2 != 0)" but then it gets swapped out, and
Thread 2: Is started, calls Go(), does the if, the write, and sets val2=0. Then Thread 2 gets swapped out and
Thread 1 is restarted, it goes to do the "Console.WriteLine(val1/val2)" but since Thread 2 set val2 to 0, it gets a divide by 0 fault.