Sto leggendo la documentazione Flask e ho letto questo -Cosa significa Thread Local Objects in Flask?
Una delle decisioni di progettazione nel pallone era che semplici compiti dovrebbero essere semplici; non dovrebbero prendere molto codice e tuttavia non dovrebbero limitarti. Per questo motivo, Flask ha poche scelte progettuali che alcune persone potrebbero trovare sorprendenti o non ortodosse. Ad esempio, Flask utilizza internamente gli oggetti thread-local in modo che non sia necessario passare oggetti dalla funzione alla funzione all'interno di una richiesta per rimanere protetti da thread. Questo approccio è conveniente, ma richiede un contesto di richiesta valido per l'iniezione di dipendenza o quando si tenta di riutilizzare il codice che utilizza un valore ancorato alla richiesta. Il progetto Flask è onesto sui thread-locals, non li nasconde e chiama nel codice e nella documentazione dove sono usati.
Cosa significa? In particolare le seguenti domande -
- Che cosa sono gli oggetti locali del thread? Come e quando vengono utilizzati e quale scopo risolvono?
- In che modo l'utilizzo di oggetti thread-local internamente garantisce la sicurezza dei thread e in che modo il passaggio degli oggetti alla funzione risulta in non-thread-safe?
- Qual è il significato di un contesto di richiesta valido in questo caso?