basics of java concurrency - Semaphore and Callable