Tôi không phải là một lập trình viên java tốt, nó chỉ là sở thích của tôi, nhưng tôi háo hức muốn biết nhiều hơn những thứ trung bình.Java: Làm thế nào để mở rộng các luồng theo lõi CPU?
Tôi muốn giải quyết vấn đề toán học với nhiều chuỗi trong java. vấn đề toán học của tôi có thể được chia thành các đơn vị công việc, mà tôi muốn giải quyết trong một số chủ đề.
nhưng tôi không muốn có một số lượng cố định của các chủ đề làm việc trên nó, nhưng thay vì một số tiền coresponding của các chủ đề với số lượng lõi CPU. và vấn đề của tôi là, tôi không thể tìm thấy một hướng dẫn dễ dàng trên internet cho việc này. tất cả những gì tôi tìm thấy là những ví dụ với các chủ đề cố định.
Vì vậy, bạn có thể giúp tôi với một liên kết đến một gia sư tốt hay có thể cho tôi một ví dụ dễ dàng và tốt? Điều đó sẽ thực sự tốt đẹp :)
Điều này về cơ bản là chính xác, nhưng hãy cẩn thận về hiệu năng trên bộ vi xử lý được tiếp thị với "siêu phân luồng" của Intel. Trên quad-core, điều này sẽ trả về 8 thay vì 4, nhưng hiệu suất của bạn thực sự có thể bắt đầu giảm sau 4 chủ đề - vì vậy điểm chuẩn của riêng tôi cho tôi biết :) – xcut
Xin chào, okay, không biết, điều này là có thể. nhưng khi tôi chia một nhiệm vụ thành một số đơn vị công việc và tôi cần tất cả các giải pháp một phần cho bước cuối cùng, thì việc này được thực hiện như thế nào? Khi tôi có một số "yourThreads" làm thế nào để tôi sử dụng join() cho điều này, bởi vì tôi không nhìn thấy, làm thế nào một số chủ đề được phân biệt? :) BTW: liên kết của bạn đến Thread Pooling dẫn tôi đến http://www.ibm.com/developerworks/library/j-jtp0730.html :) –
Xem ví dụ tại đây: http: // java. sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ExecutorService.html Nó sẽ cho bạn biết một cách sắp xếp hợp lý hơn để tạo và quản lý nhóm luồng ... Nó có vẻ phức tạp hơn lúc đầu, nhưng như với hầu hết mọi thứ, nó phức tạp hơn bởi vì nếu nó đơn giản hơn, bạn chỉ cần đạt giới hạn sớm hơn. –