Tôi bắt đầu học python một vài tháng trước, sau đó tôi tìm thấy Jython.jython đa luồng
Chuỗi làm việc có hoạt động đúng trong Jython, vì nó doesn't have a GIL? Nếu vậy, bạn có thể đề xuất một cuốn sách tốt về đồng thời (luồng)?
Tôi bắt đầu học python một vài tháng trước, sau đó tôi tìm thấy Jython.jython đa luồng
Chuỗi làm việc có hoạt động đúng trong Jython, vì nó doesn't have a GIL? Nếu vậy, bạn có thể đề xuất một cuốn sách tốt về đồng thời (luồng)?
Cuốn sách hay nhất mà tôi đã gặp trên đa luồng là "Java Concurrency in Practice". Nó tập trung rất nhiều vào sự tương tranh của luồng Java, và cả hai đều khiêm tốn và thú vị khi bạn bắt đầu hiểu các vấn đề và các khả năng được đưa ra bởi sự đồng thời. Bản sao tôi đã mua một vài năm trước đây đã có một số errata trong mã hóa, mặc dù, làm trầm trọng thêm một chủ đề đã được thử thách não: kiểm tra errata ở đây: http://jcip.net/errata.html.
Mặc dù được thiết kế cho các nhà phát triển Java muốn mạo hiểm vào đồng thời (theo cách này bao gồm bất kỳ ai từng sử dụng giao diện GUI dưới mọi hình thức), tôi chắc chắn những khó khăn kỹ thuật và sự tinh tế được nêu trong cuốn sách áp dụng cho bất kỳ việc triển khai nào đồng thời.
Bằng cách này, tôi cũng yêu Jython và có thể xác nhận rằng bất cứ điều gì đồng thời-khôn ngoan mà bạn có thể làm trong Java bạn rõ ràng có thể làm trong Jython. Tuy nhiên, có một cảnh báo: đồng thời có thể được lập trình không đồng bộ (bao gồm GUI) và/hoặc cho hiệu suất. Nếu cho sau này bạn có một vấn đề, theo ý kiến của tôi: Jython trong kinh nghiệm của tôi chạy khoảng 10 x chậm hơn so với chương trình Java tương đương.
Điều này có nghĩa là các mô-đun Jython đòi hỏi của bạn sẽ phải gọi một thứ gì đó khác hơn là Jython cho các tác vụ số-crunching. Đồng thời, Jython cho đến nay * chưa có mô-đun đa xử lý của Python, vì vậy các liên lạc giữa các quá trình được thực hiện, trừ khi bạn mạo hiểm vào lãnh thổ sợ hãi của RMI. Bạn là một người đàn ông/đàn bà hơn tôi nếu bạn chọn lựa đó. Nhưng mọi thứ đều OK: hãy tham khảo "The Definitive Guide to Jython" tại http://www.jython.org ... chương 19 là một loại giới thiệu tiếng còi để đồng thời, và chương 10 là về tích hợp Java và Jython (gợi ý: nó vô lý dễ dàng).
PS một từ cuối cùng: hầu hết các chuyên gia biết nhiều hơn về những điều này hơn tôi nói rằng định luật Moore được thay thế trong nhập khẩu theo luật của Amdahl, nghĩa là thách thức khó khăn trong lập trình ổn định và các chương trình đồng thời thực sự có thể mở rộng sẽ không thể tránh khỏi trong tương lai. Chính xác như thế nào thật sự dễ dàng (tức là thread) đồng thời có thể được thực hiện với việc sử dụng các công cụ phân tích mã thông minh tôi không thể nói, nhưng đầu tư vào chủ đề này và hấp dẫn, trí tuệ mới của các lý do áp đặt bằng đồng thời sẽ có thể trả hết ... bạn thích một thử thách.
Có, với Jython bạn đã real multi-threading. Jython (JPython successor's) là một triển khai thực hiện Python chạy trong JVM. Một trong những khác biệt chính giữa Jython và dự án ban đầu là đầu tiên không có GIL và thực hiện một hỗ trợ đa luồng thực dựa trên việc thực hiện của JVM.
Khía cạnh khó hiểu ban đầu có thể là you can mix and match các cơ chế đồng thời của Java và Jython. Nhưng tất cả dường như hoạt động.Lý do là:
... không có ưu tiên, không có nhóm chủ đề và chủ đề không thể bị hủy, ngừng, tạm ngưng, tiếp tục hoặc gián đoạn. [1]
thành ngữ
Các Python có lẽ thuận tiện hơn một chút, bởi vì, ví dụ, nếu bạn muốn làm như tương đương với synchronized (some_object) { ... }
, có a small bit of fiddling required, mà có thể sẽ ít có thể đọc được vì sử dụng một RLock .
Đây là một câu hỏi hay, tôi thành thật không biết câu trả lời nhưng tôi có đa luồng với cả hai vì vậy có thể một câu hỏi hay hơn là: 'Tôi có cần sử dụng đa xử lý python hay luồng của Java' không? Tôi chắc chắn rằng nó hoạt động chỉ không chắc chắn mà một trong những bạn phải sử dụng kể từ khi jython là một sự pha trộn của cả hai. – Lostsoul
Bạn có nghĩa là Jpython hay Jython? Đây là loại câu hỏi mở mà không thực sự phù hợp với SO, btw. –
Theo [câu hỏi này (http://stackoverflow.com/questions/4227269/hidden-multithreading-bottlenecks-in-jython), câu trả lời là có. Tôi hiểu rằng có thể truy cập vào các thư viện đa luồng python hoặc hỗ trợ đồng thời java thông qua jython. –