Part1.java
//饿汉式的单例模式 public class Singleton { private static Singleton instance; static{ instance = new Singleton(); } private Singleton(){ //消耗资源的操做 } public static Singleton getInstance(){ return instance; } }
//Future模式 public class TestFuture { static class Job<Object> implements Callable<Object>{ @Override public Object call() throws Exception { return loadData(); //执行时间可能较长 } private Object loadData() { return null; } } public static void main(String[] args) throws Exception{ FutureTask future = new FutureTask(new Job<Object>()); new Thread(future).start(); // do something else Object result = future.get(); } }
//设置固定大小为5的线程池,用它来并发执行1000个任务 public class TestExecutorService { static class Job implements Runnable{ @Override public void run() { doWork(); } private void doWork() { System.out.println("doing..."); } } public static void main(String[] args){ ExecutorService exec = Executors.newFixedThreadPool(5); for(int i=0; i<1000; i++){ exec.execute(new Job()); } } }
Part2.并发
Part3.ide