#include <boost/thread.hpp>
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

double *a;
int rows;
int cols;
int nthreads;

void worker(int tid){
	for (int i=tid; i<rows; i+=nthreads){
		for (int j=0; j<cols; j++){
			a[i*cols+j]=(double) rand()/(RAND_MAX*1.0);
			}
		}
	}

int main(){
	srand(time(0));
	rows=10;
	cols=10;
	nthreads=10;
	a=new double[rows*cols];
	boost::thread_group tg;
	for (int i=0; i<nthreads; i++){
		tg.create_thread(boost::bind(worker, i));
		}
	tg.join_all();
	for (int i=0; i<rows; i++){
		for (int j=0; j<cols; j++){
			cout << a[i*cols+j] <<" ";
			}
		cout <<endl;
	}
}

