當我使用python,我總是在想,如果python
使用多線程默認情況下,或不寫代碼。Python是否默認使用線程?
假設如
l = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print reduce(lambda x, y: x + y, l)/len(l)
將使用多線程處理容易地進行的碼。通過讓線程獲得列表的小集合的總和。
總之,確實蟒蛇默認情況下使用多線程,當它可能不?或者總是使用一個?
當我使用python,我總是在想,如果python
使用多線程默認情況下,或不寫代碼。Python是否默認使用線程?
假設如
l = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print reduce(lambda x, y: x + y, l)/len(l)
將使用多線程處理容易地進行的碼。通過讓線程獲得列表的小集合的總和。
總之,確實蟒蛇默認情況下使用多線程,當它可能不?或者總是使用一個?
無需顯式定義線程行爲,Python不使用其他的線程。此外,由於解釋器的內存處理不是線程安全的,因此在Python中的線程並不總是完全正常工作,因爲Global Interpreter Lock。
號您的代碼將順序運行。
另外你的例子是依靠你除了用整數的結合性的知識。
Python不知道這是一個整數列表,或者另外將是聯想爲你添加的對象。
特別是,如果你的列表是浮動的列表,順序,你把它們加起來可以影響結果
Python中的某些實現不使用GIL –
+1,還有其他版本,除了CPython,儘管這是「標準」。 –