logo头像

路漫漫兮其修远兮

并发

Java并发编程(七):AQS框架

1 概述AQS即AbstractQueuedSynchronizer(抽象队列同步器),是一个用于构建锁和同步器的框架,在本系列上一篇文章中提到过的Semaphore,CountDownLacth甚至包括显式锁ReentrantLoc...

Java并发编程(六):并发容器和工具类

1 概述JDK提供了很多可以简化并发编程的容器以及工具类,例如ConcurrentHashMap、CopyOnWriteArrayList,Semaphore,CountDownLatch等。 对于并发容器来说,他们本身内部提供了足够...

Java并发编程(五):生产者和消费者

1 概述维基百科上有对“生产者和消费者模型”的名词解释: 生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多进程同步问题的经...

Java并发编程(四):锁

1 概述什么是锁?锁其实是一种同步机制,或者说是实现同步的一种手段,其他的同步机制还有信号量、管程等。其功能就是将一部分代码块或者方法(函数)包围起来作为一个“临界区”,线程访问这段临界区时需要先获取锁(可以理解为获取权限),获取成功...

Java并发编程(三):线程池

1 概述线程池即包含一个或者多个线程的集合,类似的还有对象池,数据库连接池,他们本质上都是一样的,只是因为集合里的元素类型不同,所以名字不同而已。之所以要使用线程池这种模式,是因为创建线程是有一定开销的,如果在线程使用频繁且线程生命周...

Java并发编程(二):线程安全

1 概述在多线程并发环境下,由于线程之间的执行顺序不可预测,所以如果多个线程对同一共享且可变的变量执行写操作,就可能导致该共享变量的状态发生错乱,这不是我们所期望的,甚至可能是造成系统崩溃的因素。我们一般把这种问题称为线程安全问题。 ...

Java并发编程(一):进程和线程

1 概述下面是维基百科上对进程和线程的解释: 进程(英语:process),是指计算机中已运行的程序。进程为曾经是分时系统的基本运作单位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执...