Poszedłem na spotkanie z Pythonem SF, gdy Guido talked o Tulip, przyszłej bibliotece asynchronicznej dla asynchronicznych operacji w Pythonie.Tulipan/asyncIO: dlaczego nie wszystkie połączenia mają być asynchroniczne i określić, kiedy rzeczy powinny być synchroniczne?
na wynos jest to, że jeśli chcesz coś być uruchamiany asynchronicznie można użyć "yield from" + expression
i kilku dekoratorów aby określić, że wezwanie do tego, co przychodzi po yield from
powinno być wykonywane asynchronicznie. Dobrą rzeczą jest to, że możesz czytać instrukcje w tej funkcji w normalny sposób (tak jakby był synchroniczny) i będzie zachowywał się tak, jakby był synchroniczny w odniesieniu do wykonywania tej funkcji (wartości zwracane i propagacja błędów/wyjątków i obsługa).
Moje pytanie brzmi: dlaczego nie mieć przeciwnego zachowania, a mianowicie, czy wszystkie wywołania funkcji są domyślnie asynchroniczne (i bez yield from
) i mają inną wyraźną składnię, jeśli chcesz wykonać coś synchronicznie?
(oprócz konieczności innym kluczowym/składni SPEC)
Dziękuję, doceniam to. – Gabriel
@ iCodez Domyślam się, że asyncio jako nazwa standardowej biblioteki będzie używane częściej niż Tulip. Poza tym tag Tulip jest już brany pod C++. Oznaczyłem wszystkie pytania dotyczące Pythona odnoszące się do Tulip z 'python-asyncio' (zobacz' python-multithreading' dla * stanu techniki *) –
try: 'sentence = tokenize_sent (your_question); random.shuffle (zdania); text = "\ n" .join (sentences) 'i zobacz, jak łatwo jest go zrozumieć lub czy znaczenie pozostaje takie samo. async domyślnie miesza kolejność: wszystkie problemy wielowątkowości prewencyjnej bez korzyści. – jfs