La sincronizzazione tra thread e di oggetti comuni è un particolare da non prendere sottogamba visti i problemi difficilmente risolvibili che potrebbero nascere una volta che l'applicazione sia utilizzata in un'ambiente di esecuzione reale.
Il Frameowork mette a disposizione molte tecniche per evitare problemi in caso di accesso contemporaneo di oggetti comuni a più thread. Si guardi la classe Monitor di cui avevo discusso in precedenza, Mutex e altre, ma proprio oggi mi sono ritrovato, spulciando tra le migliaia di classi del Framework, la classe Interlocked. Essa permette l'accesso sicuro dei vari oggetti condivisi. La sintassi ed esempi completi sono presenti sull'MSDN. E trovo veramente comodo il poter utilizzare questa sintassi, invece dei metodi della classe Monitor:
Interlocked.Increment(numero)
Interlocked.Decrement(numero)
Interlocked.Exchange(nome oggetto)
Interlocked.CompareExchange(oggetto1, oggetto2...)
Non si finisce mai di imparare.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- C# e Net 6 in Kubernetes con Prometheus e Grafana, il 12 gennaio 2022 alle 21:58
- Snaturare Kubernetes evitando i custom container Docker, il 6 gennaio 2022 alle 19:40
- Provando Kaniko in Kubernetes come alternativa a Docker per la creazione di immagini, il 18 dicembre 2021 alle 20:11
- Divertissement con l'OpenID e Access Token, il 6 dicembre 2021 alle 20:05
- Operator per Kubernetes in C# e Net Core 6., il 28 novembre 2021 alle 19:44
- RBAC in Kubernetes verso gli operator, il 21 novembre 2021 alle 20:52