A method of handling conflicts between threads, including an initiating
thread and at least one other thread, for at least one shared resource in
a multi-threaded processing system having a processor and memory includes
setting a location in memory for each other thread on the processor with
the initiating thread. The initiating thread signals an inter-processor
interrupt (IPI) to all other threads on the processor. For each other
thread, an interrupt handler is initiated where each other thread:
acknowledges receipt of the interrupt, and proceeds to spin on the
respective location in memory that was set, thereby guaranteeing that the
respective other thread will not be using any shared resource of the
processor. The initiating thread waits for other threads on processor to
acknowledge the inter-processor interrupt (IPI), and when all the other
threads have acknowledged the inter-processor interrupt (IPI), the
initiating thread proceeds to save the state of the shared resource in
memory, sets the shared resource to the state wanted, uses the shared
resource, and restores the original state of the resource. The initiating
thread then releases the other threads from their spin by resetting the
location in memory that was set above. All the threads then proceed with
their computations.
Un metodo di maneggiamento è in conflitto fra i filetti, compreso un filetto d'inizio ed almeno un altro filetto, dato che almeno una risorsa comune in un sistema di elaborazione multi-filettato che ha un processor e una memoria include la regolazione della posizione nella memoria per a vicenda filetto sul processor con il filetto d'inizio. Il filetto d'inizio segnala un'interruzione del inter-processor (IPI) a tutti i altri filetti sul processor. Per a vicenda il filetto, un alimentatore di interruzione è iniziato dove filetto: accusa ricevuta dell'interruzione e continua alla rotazione sulla posizione rispettiva nella memoria che è stata regolata, quindi garantente che il rispettivo l'altro filetto non userà alcuna risorsa comune del processor. Gli aspett d'inizio del filetto altri filetti sul processor per riconoscere l'interruzione del inter-processor (IPI) e quando tutti i altri filetti hanno riconosciuto l'interruzione del inter-processor (IPI), il filetto d'inizio continua conservare il dichiarare della risorsa comune nella memoria, regola la risorsa comune al dichiarare desiderato, usa la risorsa comune e ristabilisce l'originale dichiarano della risorsa. Il filetto d'inizio allora libera gli altri filetti dalla loro rotazione ripristinando la posizione nella memoria che è stata regolata sopra. Tutti i filetti allora procedono ai loro calcoli.