使用python,我寫了一個令人討厭的cralwer系統,從每個地方政府的網站提供一些東西,並且總的網站數超過100,以防萬一他們的網頁改變了,我不得不使用重新加載來進行熱更新。但我想知道如果重新加載是線程安全的。因爲我說,我正在線程1中重新加載模塊Cralwer1,但同時線程2正在使用Cralwer1。線程1的重新加載是否會導致線程2失敗?如果是這樣,我必須做一個鎖或什麼,否則,我可以愉快地做沒有額外的工作重新加載。誰能幫我嗎?Python重新加載線程安全嗎?
1
A
回答
1
是Python的重載線程安全的?
號
的重載()執行模塊中的所有純Python代碼。任何純Python步驟都可以隨時進行線程切換。所以,這絕對不安全。
0
reload =在Crawler1中重新執行頂級代碼。
一般來說沒有更多的信息/代碼示例,可以:
封裝該踢的東西掉了「操作」頂級代碼,例如把它放在函數或類中,然後調用它而不是重新加載整個模塊。這可能涉及調用/添加一些清理功能。
使用一個全局變量,thread1和thread2將翻轉並注意防止相互踩踏。這並不能很好地擴展,但也可以防止/延遲鎖的使用。
- 使用鎖其實並不難, ,甚至支持上下文管理器: https://docs.python.org/3/library/threading.html#with-locks
相關問題
- 1. 在Python線程安全嗎?
- 2. python logger線程安全嗎?
- 3. java線程安全:線程安全嗎?
- 4. 從另一個線程加載數據,線程安全嗎?
- 5. Python的`list(some_dictionary)`線程安全嗎?
- 6. python zipfile是線程安全的嗎?
- 7. 是python dict.items()線程安全嗎?
- 8. python中的heapq線程安全嗎?
- 9. 在Python中,是set.pop()線程安全嗎?
- 10. CFStringTransform線程安全且可重入嗎?
- 11. 這個函數(操作符重載)線程安全嗎?
- 12. 如何同步數據源更新與tableview重新加載與線程安全?
- 13. Spring mongoTemplate線程安全嗎?
- 14. Lparallel.queue線程安全嗎?
- 15. BoxClient線程安全嗎?
- 16. EventHubClient.SendBatchAsync - 線程安全嗎?
- 17. .NET:JsonMediaTypeFormatter線程安全嗎?
- 18. multiset equal_range線程安全嗎?
- 19. pip線程安全嗎?
- 20. com.google.cloud.datastore.Datastore線程安全嗎?
- 21. WNetGetResourceInformation線程安全嗎?
- 22. qsort線程安全嗎?
- 23. work_queue線程安全嗎?
- 24. .NET DateTime線程安全嗎
- 25. DynamoDBContext線程安全嗎?
- 26. java.lang.reflect.Method線程安全嗎?
- 27. HttpContext.Current.Cache線程安全嗎?
- 28. UIFont線程安全嗎?
- 29. C#+ =線程安全嗎?
- 30. Go bytes.Buffer線程安全嗎?
你爲什麼使用'reload'呢? – user2357112
用於熱更新。 –