package threadtesting;

public class ThreadA extends Thread {
	
	/* variables */
	Data data;
	int [] C;
	
	/* constructor */
	public ThreadA(Data data) {
		this.data = data;
	}
	
	/* Method's */
	
	@Override
	public void run() {
		data.waitForInitializeDataInThread2();
		
		C = data.getCopyOfC();
		data.thread1CopiedC();
		data.waitForThread2CopyC();
		
		int tmp;
		for(int i=0;i<data.getSize()/2;i++) {
			tmp=0;
			for(int j=0;j<data.getSize();j++) {
				tmp+=C[j]*data.MX[j][i];
			}
			data.A[i] = tmp + data.B[i];
		}

		System.out.println("Потік1: Завершено обрахунок даних!");
		
		data.waitForEndOfCalculationInThread2();		

		System.out.println("Потік1: Вивід результату!");
		
		// show A
		data.printA();

	}

	
}
