
多线程
liucw_cn
喜爱java
展开
-
Java多线程编程4--Lock的实例--顺序打印
使用Condition对象可以对线程执行的业务进行排序规划public class Run { private volatile static int nextPrintWho = 1; private static ReentrantLock lock = new ReentrantLock(); private final static Condition c原创 2016-05-08 10:14:56 · 806 阅读 · 0 评论 -
Java多线程编程5--定时器Timer的使用
定时/计划功能在移动开发领域使用较多,比如Android技术。定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联的。 在JDK库中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。 Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类 执行计划原创 2016-05-08 21:28:54 · 2424 阅读 · 0 评论 -
Java并发---- Executor并发框架--线程池,ThreadToolExecutor初步理解
对于数据库连接,我们经常听到数据库连接池这个概念。因为建立数据库连接时非常耗时的一个操作,其中涉及到网络IO的一些操作。因此就想出把连接通过一个连接池来管理。需要连接的话,就从连接池里取一个。当使用完了,就“关闭”连接,这不是正在意义上的关闭,只是把连接放回到我们的池里,供其他人在使用。所以对于线程,也有了线程池这个概念,其中的原理和数据库连接池是差不多的,因此java jdk中也提供了线程池的功原创 2016-11-05 13:36:42 · 7295 阅读 · 0 评论 -
Java并发---- Executor并发框架--ThreadToolExecutor类详解(execute方法,关闭方法)
1、构造方法请参考上篇文章:http://blog.youkuaiyun.com/ochangwen/article/details/530447332、源码详解线程池内部有一些状态,先来了解下这些状态的机制。以下用代码注释的方式来解释其中的含义。/*这个是用一个int来表示workerCount和runState的,其中runState占int的高3位,其它29位为wor原创 2016-11-05 19:03:07 · 6713 阅读 · 5 评论 -
Java并发----ArrayBlockingQueue
Java中有些多线程编程模式在很大程序上都依赖于Queue实现的线程安全性,所以非常有必要认识,首先来看一下接口定义,如下: public interface Queue extends Collection { // 向队列中添加元素 boolean add(E e); boolean offer(E e);原创 2016-11-06 22:46:16 · 846 阅读 · 0 评论 -
Java并发----ConcurrentHashMap02--源码分析
通过分析Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要原创 2016-11-06 21:46:36 · 1101 阅读 · 0 评论 -
Java多线程编程4--Lock的实例--实现生产者/消费者模式:一对一、多对多交替打印
1、实现生产者/消费者模式:一对一交替打印public class MyService { private ReentrantLock lock= new ReentrantLock(); private Condition condition = lock.newCondition(); private boolean hasValue = false; p原创 2016-05-07 22:46:00 · 2584 阅读 · 0 评论 -
Java多线程--并发和并行的区别
所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,而先后进入队列排队等候执行。 并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行原创 2016-04-10 22:45:56 · 15678 阅读 · 2 评论 -
Java多线程编程6--单例模式与多线程--单例模式设计详解1
在标准的23个设计模式中,单例设计模式在应用中是比较常见的。但在常规的该模式教学资料介绍中,多数并没有结合多线程技术作为参考,这就造成在使用多线程技术的单例模式时会出现一些意想不到的情况,这样的代码如果在生产环境中出现异常,有可能造成灾难性的后果。1、立即加载/“饿汉模式” 什么是立即加载?立即加载也称为“饿汉模式”,就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接原创 2016-05-09 10:49:13 · 1424 阅读 · 0 评论 -
Java----JUC
1.Java JUC 简介 在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。 提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等.2.volatile 关键字 内存可见性2.1.内存可见性原创 2017-08-02 11:56:33 · 802 阅读 · 0 评论