Ruby on Rails è multithread?
Ruby on Rails è multithread?

Video: Ruby on Rails è multithread?

Video: Ruby on Rails è multithread?
Video: Multi-Threading and Ruby's Thread Class - Launch School Tech Talks 2024, Maggio
Anonim

Phusion Passenger utilizza la concorrenza basata sui processi per gestire alcune richieste contemporaneamente, quindi, in senso stretto, non è " multithread , " ma è ancora simultaneo. Questo discorso da Rubino MidWest 2011 ha dei buoni pensieri su come ottenere Ruby on Rails multithread andando.

In questo modo, Ruby supporta il multithreading?

UN multithread il programma ha più di un thread di esecuzione. Rubino rende facile scrivere programmi multi-thread con la classe Thread. Rubino i thread sono un modo leggero ed efficiente per ottenere la concorrenza nel codice.

In secondo luogo, Ruby è simultaneo? In particolare, Concorrenza rubino è quando due attività possono essere avviate, eseguite e completate in periodi di tempo sovrapposti. Ciò non significa necessariamente, tuttavia, che verranno mai eseguiti entrambi nello stesso istante (ad esempio, più thread su una macchina single-core).

Allo stesso modo, Ruby è a thread singolo?

La risposta breve è sì, lo sono filettatura singola . La risposta lunga è dipende. JRuby è multithread e può essere eseguito in Tomcat come altri codici Java. RM (predefinito rubino ) e Python hanno entrambi un GIL (Global Interpreter Lock) e sono quindi filettatura singola.

Ruby ha un Gil?

risonanza magnetica ha qualcosa chiamato blocco globale dell'interprete ( GIL ). È un blocco attorno all'esecuzione di Rubino codice. Ciò significa che in un contesto multi-thread può essere eseguito solo un thread Rubino codice in qualsiasi momento. Il GIL esiste per proteggere Rubino interni da race condition che potrebbero danneggiare i dati.

Consigliato: