Java中使用线程的矩阵乘法
我的程序中有一个问题,创建了2个矩阵a和B(用1初始化每个单元格),它使用线程计算矩阵C=a*B(每个线程计算一行)。 问题是它有时有效,有时无效Java中使用线程的矩阵乘法,java,multithreading,matrix,Java,Multithreading,Matrix,我的程序中有一个问题,创建了2个矩阵a和B(用1初始化每个单元格),它使用线程计算矩阵C=a*B(每个线程计算一行)。 问题是它有时有效,有时无效 package multiplier; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; public class Multiplier extends Threads{ static int[][] A
package multiplier;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Multiplier extends Threads{
static int[][] A,B,C;
static int x;
int row;
public Multiplier(int row){
this.row=row;
}
@Override
public void run(){
for(int a=0;a<x;a++){
C[row][a]=0;
for(int b=0;b<x;b++){
C[row][a]+=A[row][b]*B[b][a];
}
}
}
//main method
public static void main(String[] args) {
x= new Scanner(System.in).nextInt();
A= new int[x][x];
B= new int[x][x];
C= new int[x][x];
for(int i=0;i<x;i++){
for(int j=0;j<x;j++){
A[i][j]=1;
B[i][j]=1;
}
}
for(int i=0;i<x;i++){
new Multiplier(i).start();
}
for(int i=0;i<x;i++){
for(int j=0;j<x;j++){
System.out.print(C[i][j]+" ");
}
System.out.println();
}
}
}
包乘数;
导入java.util.Scanner;
导入java.util.logging.Level;
导入java.util.logging.Logger;
公共类乘数扩展线程{
静态int[]A、B、C;
静态int x;
int行;
公共乘数(整数行){
this.row=行;
}
@凌驾
公开募捐{
对于(int a=0;a什么是类Threads
?您的意思可能是Thread
?线程同步可能就是为什么有时它才起作用的原因我使用了“synchronized”来同步线程,但它不起作用