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