public void process () {
		Thread[] workerThreads = new Thread[threadCnt];
		for (int i = 0; i < threadCnt; i++) {
			workerThreads[i] = new Thread(pageRankWorkers[i]);
			workerThreads[i].start();
			try{ Thread.sleep(2000);} catch(InterruptedException e){}
		}
		boolean workerAlive = true;
		// Wait until the workers are done
		while (workerAlive) {
			workerAlive = false; //still false at the end if no worker is alive
			try {
				for (int i = 0; i < threadCnt; i++) {
					if (workerThreads[i].isAlive()) {
						workerAlive = true;
						workerThreads[i].join();
					} 
				}
				break;
			} catch (InterruptedException e) {
				continue;
			}
		}
	} //end of process