jtulach@104: package org.apidesign.deadlock; jtulach@104: jtulach@104: import java.util.concurrent.ExecutorService; jtulach@104: import java.util.concurrent.Executors; jtulach@104: import java.util.concurrent.Future; jtulach@104: import java.util.concurrent.TimeUnit; jtulach@104: import org.junit.Assert; jtulach@104: import org.junit.Test; jtulach@104: jtulach@104: public class ExecutorServiceTest implements Runnable { jtulach@104: private int cnt; jtulach@104: jtulach@104: @Test jtulach@104: public void showUsageOfExecutionService() throws Exception { jtulach@104: Runnable someRunnable = this; jtulach@104: jtulach@104: // BEGIN: deadlock.service jtulach@104: ExecutorService service = Executors.newSingleThreadExecutor(); jtulach@104: jtulach@104: // scheduling is quite different jtulach@104: Future task = service.submit(someRunnable); jtulach@104: jtulach@104: // compared to waiting jtulach@104: task.get(1000, TimeUnit.MILLISECONDS); jtulach@104: // END: deadlock.service jtulach@104: jtulach@104: Assert.assertEquals("Cnt executed", 1, cnt); jtulach@104: } jtulach@104: jtulach@104: public void run() { jtulach@104: cnt++; jtulach@104: } jtulach@104: jtulach@104: }