java并发编程
张行之
闻道有先后,术业有专攻。
展开
-
原子操作类介绍
原子操作类介绍因为java的多线程的缘故,当多个线程同时修改同一个变量,导致最后变量得不到预期的结果。原因是多线程操作,导致变量操作缺少原子性,所以导致变量在多线程的操作下达不到预期效果。如下面案例所示:public class Test { private static int count = 10; private static AtomicInteger atomicCount原创 2017-06-20 15:08:08 · 530 阅读 · 0 评论 -
ThreadPoolExecutor中的submit()方法详细讲解
ThreadPoolExecutor中的submit()方法详细讲解在使用线程池的时候,发现除了execute()方法可以执行任务外,还发现有一个方法submit()可以执行任务。submit()有3个参数不一的方法,这些方法都是在ExecutorService接口中声明的,在AbstractExecutorService中实现,而ThreadPoolExecutor继承AbstractExecut原创 2017-06-09 11:10:33 · 74389 阅读 · 8 评论 -
java封装的几个线程池介绍
java封装的几个线程池介绍FixedThreadPoolFixedThreadPool并不是一个类,它是由Executors工具类创建出来的一个固定线程数的一个ThreadPoolEexcutor的对象,有2种实现方式。Executors.newFixedThreadPool(3);//固定3个线程数Executors.newFixedThreadPool(3, Executors.default原创 2017-06-09 11:09:50 · 4553 阅读 · 0 评论 -
线程池原理及使用
线程池原理及使用线程池简介我们知道多个线程可以并行执行多个任务,当任务执行完毕后,线程进入死亡状态,Thread对象等待JVM回收,如果我们的需求是需要持续的稳定的创建线程执行任务,可能会导致线程栈内存过大,导致JVM发生StackOverflowError错误。因为线程的创建和销毁是非常消耗资源的,所以对于频繁使用线程的项目,应该考虑使用线程池技术,线程池维护着一定数量的线程,会对执行完任务的线程原创 2017-06-09 11:08:25 · 845 阅读 · 0 评论 -
Java内存模型
Java内存模型转载于:http://www.importnew.com/19612.html最近在看Java多线程的东西,看到这篇文章对Java内存模型以及硬件CPU、内存以及它们之间的协作分析图解的很到位。这篇文章原文是老外(Jakob Jenkov)写的,写了一个系列的文章,推荐阅读,上面地址是一个哥们翻译过来的,非常感谢。简介Java内存模型规范了Java虚拟机与计算机内存(RAM)是如何协转载 2017-06-05 19:18:26 · 398 阅读 · 0 评论 -
线程间通信之等待唤醒机制
线程间通信之等待唤醒机制在命令式编程中,线程之间的通信机制有2种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间内有公共状态,线程之间必须通过发送消息来进行显示通信。等待唤醒机制等待唤醒机制,是指一个线程A调用了对象Object的wait()方法进入等待状态,而另一个线程B调用了对象Object的not原创 2017-06-05 19:16:16 · 991 阅读 · 0 评论 -
线程的调度&&线程的生命周期&&Daemon线程
线程的调度&&线程的生命周期&&Daemon线程线程简介什么是线程线程是现代操作系统调度的最小单元,也叫做轻量级的进程。在一个进程里面可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且可以访问共享的内存变量。线程与进程在引入线程的操作系统中,通常是把进程作为资源分配的基本单位。把线程作为独立运行和独立调度的基本单位。线程与进程的区别:进程间相互独立,同一进程的各个线程共享。某原创 2017-06-05 19:14:20 · 945 阅读 · 0 评论 -
Synchronized关键字的使用
Synchronized关键字的使用Synchronized同步的三种方式对象锁同步代码块private final static Object lock = new Object();synchronized (lock) { // 对象锁 // 需要同步的代码 }类锁同步代码块synchronized (Object.class) {// 类锁 // 需要同步的代码原创 2017-06-05 19:17:08 · 528 阅读 · 0 评论 -
Java的原子性&&可见性&&有序性
Java的原子性&&可见性&&有序性原子性定义:原子性:是指一个操作或多个操作要么全部执行,且执行的过程不会被任何因素打断,要么就都不执行。原子操作原理(处理器是如何实现原子操作的)处理器实现原子操作有3种方式:1. 处理器自动保证基本内存操作的原子性首先说明,处理器会自动保证基本的内存操作是原子性的。处理器保证从系统内存中读取或写入一个字节是原子的。意思是,当一个处理器读取一个字节时,其他处理器不原创 2017-06-21 10:16:53 · 13529 阅读 · 0 评论