cuốn sách gpt4 ai đã làm

Đa luồng (tách) trên mảng Java

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 12:47:07 28 4
mua khóa gpt4 Nike

Tôi đang tìm giải pháp sử dụng mảng trong hệ thống luồng (master-Slave) cho phép tôi chia tính toán của ma trận trên nhiều luồng thông qua đầu vào của người dùng và hướng nó qua 1 luồng chính đến nhiều luồng nô lệ, Các luồng nô lệ này tính toán 1 trường của ma trận.

Tôi cố gắng áp dụng kiến ​​thức của mình nhưng tôi chỉ chuyển vấn đề sang phương pháp. Mã này hoạt động nhưng chỉ sử dụng 1 luồng (tiếp theo là một luồng khác) thay vì sử dụng tất cả các luồng cùng một lúc.

Tôi nghĩ rằng tôi có thể chia ma trận bằng cách nào đó (đây có phải là Spliterator không?), nhưng không chắc phần thân Prop được chia như thế nào.

Cũng đã thử sử dụng giá trị boolean nếu trường kết quả trống, nhưng nó hoàn toàn không hoạt động.

import java.io.BufferedReader;
nhập java.io.File;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
nhập java.util.Scanner;

lớp Threadverteiler mở rộng Chủ đề {

public Threadverteiler(Thread[] thread) {
đồng bộ hóa (chủ đề);
}

public void synchronisiert(Thread[] t) {

Chủ đề[] chủ đề = t;
được đồng bộ hóa (chủ đề) {
for (int i = 0; i < thread.length; i++) {

chủ đề[i].start();
System.out.println("Chủ đề " + i + " cử chỉ");
} // TODO Sơ khai hàm tạo được tạo tự động

}
}

}

lớp Chủ đề mở rộng Chủ đề {

Chủ đề công khai(int[][] a, int[][] b) {
chạy(a,b);
}

/*
* public Threadverteiler(Thread[] c, int[][] a,int[][]b) { //start();
* run(a, b); //Arrays.spliterator(a);
* //System.out.println(Arrays.spliterator(a));
*
* }
*/

public void run(int[][] a, int[][] b) {
// được đồng bộ hóa (cái này) {

// mảng boolean = false;

// int[][]cc= new int[5][5];

// công khai int[][] recnen(int[][] a,int[][]b){

// while( arrayleer==true){
int[][] aa = new int[5][5];
int[][]bb = new int[5][5];
int[][] cc = new int[5][5];

aa = a;
bb = b;

for (int i = 0; i < aa.length; i++)

{

for (int j = 0; j < bb.length; j++)

{

for (int k = 0; k < cc.length; k++)

{

cc[i] [j] = cc [i] [j] + aa [i] [k] * bb [k] [j];
// cc[i][j] = cc[i][j] + a[i][k] * b[k][j];

/*
* if(cc[i][j]==0){ i++; j++; tiếp tục;
* System.out.println("Andere thread");
* //arrayleer=false }
*/

}

}

}

/*
* thử { PrintWriter print = new PrintWriter(new File());
*
* } Catch (Ngoại lệ e) { // TODO: xử lý ngoại lệ } return cc;
*
*
* } }
*/

// c=cc;
// System.out.println("Chủ đề hoạt động " + activeCount());

System.out.println(Arrays.deepToString(cc));
System.out.println("Chủ đề đang hoạt động " + activeCount());

}

}

// }

lớp công khai Uebung2 {

public static void main(String[] args) {

int[][] a = { { 1, -2, 3, 4, -1 }, { -2, 3, 0, 1, 2 }, { 4, -1, 2, 1, -2 }, { -2, 1, 3, -1, 3},
{ 0, 2, -1, 2, 4 } };
int[][] b = { { 2, -4, -1, 1, -2 }, { -1, 1, -2, 2, 1 }, { 5, 0, 3, -2, -4 } , {1, -2, 1, 0, 2 },
{ 2, 3, -3, 0, 0 } };

// int[][] c= new int[5][5];

// System.out.println(Arrays.deepToString(a));
// System.out.println(Arrays.deepToString(b));

// public static void threadauswahl(int x){

// int i = 0;

System.out.println("Chủ đề Bitte Anzahl eingeben");

Scanner sc = new Scanner(System.in);
int eingabe = sc.nextInt();
sc.close();

Chủ đề [] chủ đề = Chủ đề mới [eingabe];

// while (luồng[i]==null) {

for (int i = 0; i < thread.length; i++) {
thread[i] = Chủ đề mới(Chủ đề mới(a, b));

// chủ đề[i].start(); // !!!!!!!!!!!!!!!!!!
// i++;
}

Threadverteiler s = new Threadverteiler(thread);

}

}

// System.out.println(Arrays.deepToString(a));
// System.out.println(Arrays.deepToString(b));
// System.out.println(Arrays.deepToString(c));

câu trả lời hay nhất

Nếu tôi hiểu chính xác thì thiết kế này đã được triển khai trong API, thông qua Dịch vụ thực thiTương lai . Những điều này sẽ cho phép chủ của bạn (ExecutorService) kiểm soát danh sách các nhiệm vụ, mỗi nhiệm vụ chứa một phần của ma trận và báo cáo Tương lai khi hoàn thành. Bạn vẫn cần phân tích ma trận thành nhân tử cho từng nhiệm vụ trong tương lai, nhưng việc này không quan trọng.

Về đa luồng (tách) trên mảng Java, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/36203122/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress