Domanda

Riferimento a questa domanda: è ASP.NET multithread (come vuol eseguire le richieste) , questo sarebbe una corretta interpretazione di filettatura:   ASP.NET ha un processo di lavoro per ogni istanza di applicazione. È multi-thread, utilizzando il proprio pool di applicazioni. La maggior parte dei fili sono utilizzati per la manutenzione richiesta (utente). Ogni richiesta (sessione utente) è un thread. La risposta corrispondente può essere un altro thread. richiesta dell'utente venire come più thread da ISAPI, che è essa stessa multi-thread.

AJAX non è multi-filettato. Si utilizza lo stesso modello di threading di siti web non AJAX. La richiesta di pagina (Ajax o non ajax) può causare più thread da utilizzare sul server ma è ancora un thread sul client (browser utilizza un singolo thread).

È stato utile?

Soluzione

In breve, sì. In ASP.NET la richiesta / risposta vengono normalmente gestite in un unico filo ... non c'è una chiara distinzione tra "richiesta" e "risposta", è semplicemente isapi passando la richiesta di informazioni al gestore di ASP.NET ed eseguirà la codice appropriato e scrivere un'uscita. (Anche se v'è un meccanismo per la migrazione di una richiesta da un thread all'altro quando ASP.NET è sotto carico e deve fare un uso efficiente di thread disponibile. Ma non sono sicuro al 100% a livello dettagliato quando o perché questo accade. )

Browser-side JavaScript e AJAX non sono multi-thread, ma può apparire in questo modo per alcuni perché chiamate AJAX sono asincroni e le risposte sono event-driven; che è, una volta che la richiesta viene inviata al server, il filo JavaScript non è bloccato. E 'libero di inviare più richieste al server, e le risposte può o non può tornare nello stesso ordine in cui sono stati inviati. Tuttavia, perché al centro c'è davvero solo thread, se due risposte ritornano allo stesso tempo, uno sarà blocco di esecuzione dall'altra fino al termine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top