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(); } }