我對Python比較陌生,正在尋找像Python的JoinableQueue之類的東西,但它具有雙向或堆棧式的行爲。具體來說,因爲我正在處理隊列中不同進程中的項目,所以我希望能夠在隊列中已有的內容之前添加要處理的新項目(即推入堆棧或添加到隊列前面雙端隊列)。 Java有BlockingDeque這正是我想要的,但我不能真正使用Java來完成這個項目。任何指針或思考這個問題的新方法將不勝感激!有沒有像Python的JoinableDeque可用的東西?
2
A
回答
0
對於multiprocessing
,隊列語義不僅僅是在進程間通信之上實現的東西,而是它固有的。因此,最簡單的解決方案可能是通過使用JoinableQueue
來構建可連接的堆棧,並首先將所有任務放入臨時隊列,然後對新元素進行排隊並從臨時隊列中填充任務,從而實現對堆棧的壓入。從不同進程推入堆棧需要一些鎖定來維持堆棧的順序。
+0
謝謝托馬斯。我真的希望自己不需要實現這一點,但事實如此。 – mes5k
相關問題
- 1. C有沒有像IDLE(python)的東西?
- 2. 有沒有像Python導出的東西?
- 3. 有沒有像''的東西?
- 4. 有沒有像BindingSource的foreach的東西?
- 5. 有沒有像PHP的jLinq的東西?
- 6. 有沒有像CSS的jsmin的東西?
- 7. 有沒有像DatastoreOutputWriter的東西?
- 8. D3D12有沒有像vkCmdBlitImage的東西?
- 9. Haskell有沒有像Incanter的東西?
- 10. SASS裏有沒有像「+ =」的東西?
- 11. 有沒有像RightMark for Linux的東西?
- 12. 有沒有像Codecademy for Java的東西
- 13. SQLite有沒有像insert_id的東西?
- 14. 有沒有像NSBottomBar的東西?
- 15. 有沒有像GraphEdit for MediaFoundation的東西?
- 16. 有沒有像網絡TextMate的東西?
- 17. 有沒有像WMI for Linux的東西?
- 18. 有沒有像.gitonlytrackfiles的東西?
- 19. 有沒有像jQuery.active angularjs中的東西?
- 20. 有沒有像svn_load_dirs.pl git的東西?
- 21. 有沒有像pmax索引的東西?
- 22. 有沒有像CoffeeScript for PHP的東西?
- 23. 有沒有像Acegi for PHP的東西?
- 24. Julia有沒有像SharedDict的東西?
- 25. Mercurial有沒有像svnserve的東西?
- 26. C有沒有像PHP ob_start的東西?
- 27. 有沒有像Adwords Date Ranger/Picker這樣的東西可用?
- 28. 有沒有像Lisp的SLIME for Python/Django的東西?
- 29. 有沒有像Python的pty.fork Ruby的東西?
- 30. 有沒有像HTTP :: Recorder for Python的東西?
您可能可以繼承JoinableQueue。通常可以通過使用兩個(可連接)隊列來實現出隊。有沒有特別的東西不讓你這樣做? – ffledgling
是的!我嘗試了繼承JoinableQueue,因爲它內部使用了一個deque。不幸的是,它還有一個內部運行的QueueFeederThread,它會立即耗盡內部deque(如果您正在查看代碼,則使用self._buffer),並將任何添加到雙端隊列中的內容發送到管道,deque行爲會丟失。如果涉及到的話,我確實可以使用兩個JoinableQueues來實現自己的Deque,但如果可能的話,我寧願避免它。 – mes5k