1、从下面自己加synchronized的代码中,我们可以看出,map.put 这个代码已经完全被锁定,其他任务是无法进入,必须等这个任务完成才能执行下一个任务2、先看一下ConcurrentMap的put 方法 /** Implementation for put and putIfAbsent */ final V putVal(K key, V value
1、Executors创建可定时的线程newScheduledThreadPool我们设置线程数为5,创建5个任务运行结果如下程序等待10秒再执行,这个10秒是由于我们设置的newScheduledThreadPool.schedule(new MyRunnable(), 10, TimeUnit.SECONDS);
1、Executors 创建单例线程newSingleThreadExecutor 代码如下public class ExecutorsDemo { public static void main(String[] args) throws Exception, ExecutionException { ExecutorService singleThreadExecutor = Executo
1、Executors 创建可固定数量的线程newFixedThreadPool 代码如下public class ExecutorsDemo { public static void main(String[] args) throws Exception, ExecutionException { ExecutorService fixedThreadPool = Executors.new
1、用Executors 创建可缓存的线程newCachedThreadPool 代码如下public class ExecutorsDemo { public static void main(String[] args) throws Exception, ExecutionException { ExecutorService cachedThreadPool = Executors.ne
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号