E questa soluzione andrebbe sicuramente bene per questo esempio, la mia domanda era più a scopo didattico, non sto facendo un gioco di pokerOriginariamente inviato da Virus_101
1- fai 1 conto soldi totali = soldi giocatori
2- se i totali nelle transazioni > soldi totali BANNA TUTTI
Da come mi immaginerei il gioco, non farei che ogni volta che si finisce una "mano" di gioco parta un refresh/redirect di una pagina che faccia tutti i movimenti di soldi. Ma per non far ricaricare la pagina userei ajax, quindi se un utente malintenzionato capisce qual'è la pagina che si occupa dei movimenti e che parametri GET/POST gli passa, potrebbe creare uno script che con qualche injection o da remoto possa eseguire un multi-thread a questa pagina, quindi (idealmente) il multi-thread è possibile con qualche "escamotage" quindi... l'uso "normale" dell'applicazione non lo permetterebbeOriginariamente inviato da Virus_101
Il problema si verifica perche' vengono esguite 2 transazioni nello stesso tempo. quindi
in primis non eseguire mai le transazioni (movimenti dei crediti di gioco) nello stesso momento ma le inserisci in una coda.
Ecco, con questo metodo, come logica si può risolvere tutti le minacce di race condition (credo) ma questo buffer in che forma si presenta? come lo avevi immaginato? tipo elenco di record in un database?Originariamente inviato da Virus_101
Quindi le richieste arrivano ma non vengono eseguite subitissimo.
Vengono accodate in un buffer di richieste e quindi processi il buffer => hai fregato chi ti vuole fregare![]()
grazie mille a tutti![]()


Rispondi quotando