La parte PyPy GIL dell'implementazione dell'interprete PyPy in RPython o è qualcosa che translate.py aggiunge automaticamente? Ad esempio, se dovessi scrivere il mio nuovo interprete di lingua in RPython e l'ho eseguito tramite translate.py, sarebbe soggetto al GIL a priori, o sarebbe fino al mio codice interprete?Dov'è il GIL in PyPy?
11
A
risposta
10
La gestione GIL viene inserita dal modulo/thread/gil.py nel checkout PyPy. È una funzione di traduzione opzionale e viene aggiunta solo quando il modulo thread è abilitato. Detto questo, RPython stesso non è un linguaggio thread-safe (come ad esempio C), quindi è necessario fare attenzione a se stessi per bloccare gli oggetti correttamente, in modo che non risultino inconsistenti. Il problema principale sarebbe quello di fornire un garbage collector thread-aware, perché quello che usiamo in questo momento non è thread-safe e l'aggiunta di un lock rimuoverà un sacco di benefici da un modello a thread libero.
Cheers, fijal
Problemi correlati
- 1. Jython ha il GIL?
- 2. Stackless in PyPy e PyPy + greenlet - differenze
- 3. Come installare PyPy in anaconda
- 4. Python: contesto GIL - commutazione
- 5. Thread Python e GIL
- 6. Compilare PyPy to Exe
- 7. installazione zeromq under pypy
- 8. Utilizzando __slots__ sotto PyPy
- 9. Che cosa deve offrire PyPy su CPython, Jython e IronPython?
- 10. PyPy funziona con asyncio?
- 11. Come installare/utilizzare cx_Oracle in PyPy
- 12. Come usare PyPy su Windows?
- 13. come creare virtualenv con pypy?
- 14. Come installo PyPy su appveyor?
- 15. PyPy su Windows 7 x64?
- 16. Python GIL è veramente per interprete?
- 17. Boost :: GIL 'jpeglib.h': Nessun file o directory
- 18. Che cos'è un blocco dell'interprete globale (GIL)?
- 19. Come supera un server web Python GIL
- 20. Perché ho bisogno del gil per PyMem_Malloc()?
- 21. Come potrei usare GIL per un dizionario in un'applicazione multithread?
- 22. Fa `psycopg2` in Python 2.x blocca GIL
- 23. PyCharm e Pypy - Riferimento non risolto
- 24. Come utilizzare le estensioni C in python per aggirare GIL
- 25. l'utilizzo di memoria pypy cresce per sempre?
- 26. Quale profilo di memoria PyPy è raccomandato?
- 27. Svantaggi di eseguire Django con PyPy?
- 28. Qual è la versione di GIL di C#?
- 29. Perché la deque di Pypy è così lenta?
- 30. Ottenere Pypy per riconoscere i moduli di terze parti
Solo per la cronaca, sembra che clojure-py ha ottenuto circa il problema deposizione delle uova di nuovi processi e comunicare tramite messaggi Erlang stile. http://clojure-py.blogspot.com/2012/04/clojure-py-and-distributed-concurrency.html – lobsterism