Come eseguire il thread se più dati vengono inseriti nella tabella multipla

2

Ho problemi con gsoap, se due utenti si registrano     allo stesso tempo il database è
    bloccato, penso che il suo problema di threading,     come gestirlo, per favore insistimi. Sto eseguendo più thread in background. ogni 5 secondi invio di dati al server.

    
posta Satyam Srivastava 14.07.2012 - 07:41
fonte

1 risposta

1

In generale, quando si lavora con un database dovrebbe essere impostato in modo da non doversi preoccupare di cose del genere. Come suggerito da EIYusubov, è necessario esaminare il codice che si sta utilizzando per l'accesso al DB. Quali tipi di letture e scritture stai richiedendo?

(La maggior parte) I DB sono pensati per essere multiutente e multi-threaded / multi-sessione. L'invio dei dati ogni cinque secondi (come suggerito da Tech.Rahul) è o non dovrebbe essere nulla per un server DB e non dovresti avere alcuna contesa di blocco.

È possibile che tu abbia un caso in cui un utente sta ricevendo dati obsoleti.

User A @ 4.9 seconds - retrieves dataset XYZ^1 
User B @ 5.0 seconds - updates dataset XYZ^1 to become => XYZ^2
User C @ 5.1 seconds - retrieves dataset XYZ^2 

Nota: i tempi nell'esempio sono arbitrari

Quindi l'utente C non avrebbe ciò che sta guardando l'utente A, ma ciò non causerà una situazione di deadlock come hai descritto. Dato il breve lasso di tempo trascorso tra l'utente A e l'utente C, l'utente A potrebbe dire di guardare i dati sporchi.

    
risposta data 14.07.2012 - 15:18
fonte

Leggi altre domande sui tag