2009-05-27 37 views

Trả lời

9

Bạn nên thử the java tutorials từ Sun trên đồng thời.

+1

Và http://www.javaconcurrencyinpractice.com/ (Trang web và tốt nhất là sách). –

+0

vâng, đó là một cuốn sách tuyệt vời, chắc chắn đáng giá nếu anh ta muốn theo đuổi điều này hơn là những ví dụ rất đơn giản. –

0

Xử lý hình ảnh và truy xuất dữ liệu web thường chặn giao diện người dùng, khiến họ trở thành ứng cử viên tốt cho thiết kế đa luồng.

1

Ví dụ ServerSocket khá đơn giản để kiểm tra và sử dụng luồng khá ngắn gọn.

3

Tôi đề xuất sách Concurrent Programming in Java: Design Principles and Patterns bởi Doug Lea. Doug Lea là một trong những giáo sư của tôi tại SUNY Oswego - giáo sư tuyệt vời, một người đàn ông tuyệt vời. Cuốn sách là tuyệt vời và cung cấp cho bạn một tấn thông tin tuyệt vời về viết mã đa luồng tốt trong Java.

Ồ đúng rồi, và Doug Lea đã viết hầu hết java.util.concurrent. Vì vậy, ông là một cơ quan khá tốt về chủ đề ;-)

0

Tôi bắt đầu bằng cách viết các công cụ xử lý hàng loạt, quyết định rằng tôi không muốn chờ đợi và tìm cách xử lý song song các tệp. Xin lỗi mã giả; java của tôi là thực sự gỉ.

Hãy xem xét trường hợp bạn làm điều gì đó mà phải mất một lúc nhiều lần:

foreach(var item in list) 
{ 
    doSomethingSlow(item); 
} 

Trong trường hợp này nó có thể có lợi cho thêm một số mã công văn để xây dựng một chủ đề ra của cuộc gọi phương pháp. Tôi nghĩ rằng cách java bình thường để làm điều đó sẽ là để loại bỏ một chuỗi ẩn danh như sau. Nếu bạn cần để có thể trỏ đến thread để kiểm soát nhiều hơn, hủy bỏ, vv, bạn sẽ phải thực hiện và khởi tạo một lớp kế thừa từ Thread.

new Thread({ 
    public void run(){ 
     doSomethingSlow(item); 
    } 
}).start(); 

Lưu ý: Tôi chưa kiểm tra xem đây có phải là cú pháp chính xác hay không.

Cách tiếp cận đó sẽ giúp bạn tiết kiệm thời gian và mở cửa để suy nghĩ một cách thô lỗ song song. Bạn cũng có thể xem loop unwinding và chơi với nhiều thư viện lớp song song khác nhau hiện có sẵn.

Tôi thường không thích các ví dụ đồ chơi cho mã và thích tìm hiểu bằng cách tạo một cái gì đó hữu ích, vì vậy sau khi chơi với các ý tưởng trong một số hướng dẫn trong một thời gian, tôi khuyên bạn nên đặt một chút mã đồng thời hợp lý trong tất cả các dự án của bạn mỗi khi nó có ý nghĩa để làm như vậy. Tôi sẽ không khuyên bạn nên cố gắng để làm cho mỗi dòng mã song song, vì nó rất khó khăn để gỡ lỗi và giới thiệu quá nhiều chi phí trên các chủ đề instantiating ở khắp mọi nơi.

Các vấn đề liên quan