Espande " Deadlock in applicazione a thread singolo " su StackOverflow .
Quella domanda non è stata davvero conclusiva e penso che sia meglio appartenere qui.
Con la definizione di un deadlock, è tecnicamente possibile produrre un deadlock usando solo un singolo thread?
Questa è la definizione di un deadlock secondo Wikipedia :
A deadlock situation on a resource can arise if and only if all of the following conditions hold simultaneously in a system:
Mutual exclusion: At least one resource must be held in a non-shareable mode. Otherwise, the processes would not be prevented from using the resource when necessary. Only one process can use the resource at any given instant of time.
Hold and wait or resource holding: a process is currently holding at least one resource and requesting additional resources which are being held by other processes.
- No preemption: a resource can be released only voluntarily by the process holding it.
- Circular wait: each process must be waiting for a resource which is being held by another process, which in turn is waiting for the first process to release the resource.
Ho provato a creare un deadlock con un thread in C #, in cui la condizione 4 potrebbe non essere letteralmente soddisfatta, ma mi sembra ancora una situazione di stallo. Non sto pubblicando questo codice poiché so che sarebbe fuori tema per questo sito.