![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 并发编程
文章平均质量分 76
yanliang1
Java,关心一切新技术
展开
-
02 Java 并发 JDK1.5之前的多线程
Java 1.5之前的版本,只提供了有限的多线程支持。1.5之前提供的多线程功能实在太过简陋,实际工作中已经很少用到了。本章简单介绍下 JDK 1.5 之前的多线程。 定义并启动一个线程 应用程序在创建一个线程实例时,必须提供需要在线程中运行的代码。有两种方式去做到这一点: 1 提供一个Runnable对象。Runnable对象仅包含一个run()方法,在原创 2015-07-01 08:36:43 · 813 阅读 · 0 评论 -
05 Java JUC 中的 Executor 框架 提交线程
Executors类里面提供了一些静态工厂,生成一些常用的线程池。 newSingleThreadExecutor:创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。newFixedThreadPool:创建固定大小的线程池。每次提交一个原创 2015-07-01 21:42:09 · 454 阅读 · 0 评论 -
08 Java JUC 中的 ThreadPoolExecutor
通过 Executors 工具可以创建普通的线程池以及schedule调度任务的调度池。来看下内部是怎么实现的 public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads,原创 2015-07-01 21:44:06 · 384 阅读 · 0 评论 -
03 Java 并发 线程安全理论基础
线程安全问题 线程安全问题可能是非常复杂的。 竞态条件 当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。导致竞态条件发生的代码区称作临界区。 public class Counter { protected long count = 0; public void add(long value){原创 2015-07-01 21:40:57 · 382 阅读 · 0 评论 -
07 Java JUC 中的 Executor 框架 周期性任务调度
ScheduledExecutorService基于ExecutorService,是一个完整的线程池调度。另外在提供线程池的基础上增加了四个调度任务的API。 schedule(Runnable command,long delay, TimeUnit unit):在指定的延迟时间一次性启动任务(Runnable),没有返回值。schedule(Callable callable, lon原创 2015-07-01 21:43:16 · 506 阅读 · 0 评论