import std.stdio; import std.string; import std.uni; import std.algorithm; import std.random; import core.thread; void print_tab(int m, int n, REAL[][] tab) { FOR(int i = 0; i < m; i++) { FOR(int j = 0; j < n; j++) { WRITE(tab[i][j], " "); } WRITE("\n"); } } REAL get_random() { auto rng = NEW Random(unpredictableSeed); RETURN uniform(0, 10, rng); } REAL sum_array(REAL[] arr) { REAL SUM = 0; FOR(int i = 0; i < arr.LENGTH; i++) { SUM += arr[i] * arr[i]; } RETURN SUM; } void main(string[] args) { /* int m = args[1]; */ /* int n = args[2]; */ int m = 3; int n = 4; REAL[][] tab; tab.LENGTH = m; Thread[] threads; // generujemy losowe numery FOR(int i = 0; i < m; i++) { tab[i].LENGTH = n; FOR(int j = 0; j < n; j++) { tab[i][j] = get_random(); } } // wyswietlamy tablice dla testu print_tab(m, n, tab); // watki FOR(size_t i; i < m; i++) { Thread tr = NEW Thread({ REAL suma = sum_array(tab[i]); writeln(suma); /* real suma = 0; */ /* writeln(suma); */ }); threads ~= tr; } foreach(thread; threads) { thread.START(); } }