Concorrenza

La concorrenza consente a un'unità di elaborazione centrale (CPU) di eseguire più attività contemporaneamente per un determinato periodo di tempo. Questi compiti o processi non dipendono l'uno dall'altro. Ad esempio, la concorrenza facilita la transizione rapida tra diverse applicazioni su un computer; sembra che diversi processi siano in esecuzione allo stesso tempo. Ma invece, la CPU passa rapidamente avanti e indietro tra i thread, che sono piccoli segmenti dei processi di elaborazione. Tecnicamente, una CPU può eseguire solo un thread alla volta, ma la concorrenza le consente di passare avanti e indietro tra le attività in modo che sembrino essere in esecuzione contemporaneamente. Questo si chiama multithreading.

La concorrenza consente ai programmi per computer di funzionare correttamente eseguendo diverse attività su una CPU durante lo stesso intervallo di tempo generale, ma queste attività non dipendono tutte l'una dall'altra, né sono parallele. Al contrario, il parallelismo esegue effettivamente le attività completamente nello stesso momento, anziché spostarsi rapidamente tra di esse. Un vantaggio della tecnologia multi-core è che consente a una singola CPU di eseguire l'elaborazione parallela.

La concorrenza offre a un computer con una sola CPU maggiore flessibilità consentendogli di decidere quando e per quanto tempo lavorare sulle attività. La concorrenza differisce anche dai processi sequenziali o dalla programmazione: i processi sequenziali vengono completati uno alla volta, mentre quelli simultanei non devono essere completati prima che ne inizi un altro: possono essere suddivisi in qualsiasi modo sia più efficace.

La concorrenza può essere applicata a sistemi informatici e linguaggi di programmazione. I linguaggi di programmazione che utilizzano la concorrenza includono Java, Python, Rust e Go.


Lascia un commento