public static void main(String[] args) throws InterruptedException {
		if (args.length != 4) {
			exitWithError();
		}

		String dataStructure = args[0];
		int nrThreads = Integer.parseInt(args[1]);
		if (nrThreads < 1) {
			exitWithError();
		}

		int nrItems = Integer.parseInt(args[2]);
		if (nrItems < 1) {
			exitWithError();
		}

		if (nrItems % nrThreads != 0) {
			System.out.println("nrItems should be divisible by nrThreads");
			System.exit(1);
		}

		int workTime = Integer.parseInt(args[3]);
		if (workTime < 0) {
			exitWithError();
		}

		long seed = computeSeed(nrThreads, nrItems, workTime);

		performWork(dataStructure, nrThreads, nrItems, workTime, seed);
	}