Java并发
文章平均质量分 94
liao49
这个作者很懒,什么都没留下…
展开
-
Java并发之(0)线程池 api 使用
一、最顶级的类:Executors。它提供了很多静态方法,用于获取不同种类的ExecutorService。有线程池大小固定以及可变两种。1、线程池大小固定: ExecutorService pool = Executors.newFixedThreadPool(5); // 创建线程 Thread t1 = new MyThread(...原创 2013-03-02 12:05:13 · 107 阅读 · 0 评论 -
Java并发之(七)容器CopyOnWriteArrayList
来自:http://kingj.iteye.com/blog/1452427除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)。先回顾一下一个常识:1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificationExcep...原创 2013-03-10 14:55:44 · 87 阅读 · 0 评论 -
Java并发之并发与并行的区别
来自:http://developer.51cto.com/art/200908/141553.htm并发和并行的区别:吃馒头的比喻 本文简单阐述了并发和并行的区别:一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。 并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理...原创 2013-03-08 22:12:58 · 147 阅读 · 0 评论 -
java并发之(六)离线锁
来自:http://www.blogjava.net/super2/archive/2008/11/01/237994.html 离线并发的来源 在Web项目中,离线并发显得尤其严重。例如,用户A和用户B同时修改数据库中的某张表的R行,加入R行有两个字段分别是C1,C2。 假如按照如下过程修改: 1 用户A将数据R(C1,C2...原创 2013-03-08 17:31:56 · 110 阅读 · 0 评论 -
java 并发之(五.1)锁跟synchronized的总结
来自:http://lavasoft.blog.51cto.com/62575/99155二、同步和锁定 1、锁的原理 Java中每个对象都有一个内置锁 当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或在对象上同步。 当程序运行到...原创 2013-03-07 17:43:35 · 72 阅读 · 0 评论 -
java 并发之(五.2)锁跟synchronized的区别
Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下: public class LockTest { public static ...原创 2013-03-07 17:40:58 · 76 阅读 · 0 评论 -
java 并发之(四)并发容器ConcurrentHashMap
来自:http://www.goldendoc.org/2011/06/juc_concurrenthashmap/ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写...原创 2013-03-07 15:15:51 · 90 阅读 · 0 评论 -
java 并发之(三)并发容器概览
来自:http://rdc.taobao.com/team/jm/archives/539 最常用及重要的是 BlockingQueue、ConcurrentMap、CopyOnWriteArrayList。 1. java.util.concurrent所提供的并发容器java.util.concurrent提供了多种并发容器,总体上来说有4类,队列类型的BlockingQu...原创 2013-03-07 11:27:34 · 110 阅读 · 0 评论 -
java 并发之(二)同步器(synchronizer)FutureTask 、Exchanger
4.FutureTask 我们先来学习一下JDK1.5 API中关于这个类的详细介绍: “取消的异步计算。利用开始和取消计算的方法、查询计算是否完成的方法和获取计算结果的方法,此类提供了对 Future 的基本实现。仅在计算完成时才能获取结果;如果计算尚未完成,则阻塞 get 方法。一旦计算完成,就不能再重新开始或取消计算。 可使用 FutureTask 包装 Callable...原创 2013-03-06 17:33:51 · 131 阅读 · 0 评论 -
java 并发之(一)同步器(synchronizer)CountDownLatch、CyclicBarrier、Semaphore
来自:http://janeky.iteye.com/blog/769965 Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者编写高效、易维护、结构清晰的Java多线程程序。从这篇blog起,我将跟大家一起共同学习这些新的Java多线程构件 1. CountDownLatch (闭锁-倒数的锁) ...原创 2013-03-06 16:32:06 · 209 阅读 · 0 评论 -
Java并发之(八)《java并发编程实践》笔记
java并发编程实践笔记来自:http://kenwublog.com/java-concurrency-in-practise-note1, 保证线程安全的三种方法 :a, 不要跨线程访问共享变量b, 使共享变量是 final类型的c, 将共享变量的操作加上同步2, 一开始就将类设计成线程安全的 , 比在后期重新修复它 ,更容易 .3, 编写多线程程序 , 首先保证它是正...原创 2013-03-12 16:20:42 · 96 阅读 · 0 评论