在他們arXiv paper,朱莉婭的原始作者提到以下幾點:朱莉婭的並行性。功能和侷限性
2.14 Parallelism
。 並行執行由標準庫中Julia實現的基於消息的多處理系統提供。 語言設計支持通過 提供對稱協程的這種庫的實現,它也可以被認爲是協作調度的線程 。此功能允許在庫中隱藏異步通信,而不要求 用戶設置回調。 Julia目前不支持本地 線程,這是一個限制,但其優點是避免了同步使用共享內存的複雜性。
他們是怎麼說朱莉婭不支持本地線程是什麼意思?什麼是本地線程?
其他解釋語言如Python或R是否支持這種類型的並行?朱莉婭獨自一人嗎?
謝謝。當你用Python說「沒有實際的Python代碼的並行執行是可能的」時,你的意思是在同一個過程中,是正確的嗎?根據我的理解,Python **已經**支持通過多處理包使用子進程的共享內存並行性。換句話說,當你說'當我們添加它時,它將是真正的併發性,並且不會有GIL阻止同時執行Julia代碼。「',你指的是Julia用* *本地線程**,否則Julia會像Python一樣實現共享內存並行。正確? – 2013-05-07 19:17:49
是的,如果它在不同的進程中,那麼我們就不再談論線程了。目前還不清楚Julia中的共享內存並行性的性質是基於具有共享內存的線程或進程,並且這種區別在任何情況下都是實現細節。 Python的多處理程序包看起來確實是一種多進程共享內存並行機制,但它並不像我希望它適用於語言級原語那樣方便或自然。 – StefanKarpinski 2013-05-07 21:47:51
我還應該指出,像Python的多處理包這樣的實驗性工作已經完成:https://groups.google.com/forum/?fromgroups=#!searchin/julia-users/shmem$20mmap/julia-users/ Y_ME9uO5tVQ/HR0PPwtRIfIJ。 – StefanKarpinski 2013-05-07 21:50:30