随笔分类 -  java多线程和并发

摘要:http://my.oschina.net/noahxiao/blog/101558 阅读全文
posted @ 2016-07-22 14:54 人生设计师 阅读(222) 评论(0) 推荐(0) 编辑
摘要:http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 阅读全文
posted @ 2016-05-26 12:37 人生设计师 阅读(260) 评论(0) 推荐(0) 编辑
摘要:详细请参考知乎上面的回答:http://www.zhihu.com/question/27744795 我觉得回答的比较好的,原文如下: 重复消息是SOA服务实现中非常常见的问题,你永远不要指望调用方每次请求消息不一样,对于读操作,重复消息可能无害,可对于写操作很可能就是灾难。可以通过幂等(Idem 阅读全文
posted @ 2016-04-24 10:47 人生设计师 阅读(813) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://iamzhongyong.iteye.com/blog/2218572?utm_source=tuicool&utm_medium=referral 高并发系统数据幂等的技术尝试 前言 在系统开发过程中,经常遇到数据重复插入、重复更新、消息重发发送等等问题,因为应用系统的复杂 阅读全文
posted @ 2016-04-24 10:45 人生设计师 阅读(613) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/huang_xw/article/details/7090173 阅读全文
posted @ 2016-04-24 01:13 人生设计师 阅读(198) 评论(0) 推荐(0) 编辑
摘要:http://blog.chinaunix.net/uid-20577907-id-3519578.html 阅读全文
posted @ 2016-04-23 23:15 人生设计师 阅读(238) 评论(0) 推荐(0) 编辑
摘要:前几天写了个小程序,运行的时候发现在循环第二遍的时候出现了java.lang.IllegalThreadStateException异常 通过上网查询发现同一个Thread不能重复调用start方法,做如下修改就好了: 将自己定义的HubRobot extends Thread 线程类改成HubRo 阅读全文
posted @ 2016-04-23 23:03 人生设计师 阅读(5543) 评论(1) 推荐(1) 编辑
摘要:http://kanglecjr.iteye.com/blog/1071199 阅读全文
posted @ 2016-04-12 23:18 人生设计师 阅读(131) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/dolphin0520/p/3949310.html 阅读全文
posted @ 2016-04-12 23:16 人生设计师 阅读(200) 评论(0) 推荐(0) 编辑
摘要:接上文《深入浅出Java并发包—锁机制(二) 》 由锁衍生的下一个对象是条件变量,这个对象的存在很大程度上是为了解决Object.wait/notify/notifyAll难以使用的问题。 条件(也称为条件队列 或条件变量)为线程提供了一个含义,以便在某个状态条件现在可能为 true 的另一个线程通 阅读全文
posted @ 2016-02-24 17:48 人生设计师 阅读(1136) 评论(0) 推荐(0) 编辑
摘要:接上文《深入浅出Java并发包—锁机制(一) 》 2、Sync.FairSync.TryAcquire(公平锁) 我们直接来看代码 protected final boolean tryAcquire(int acquires) { final Thread current = Thread.cur 阅读全文
posted @ 2016-02-24 17:44 人生设计师 阅读(3681) 评论(1) 推荐(0) 编辑
摘要:前面我们看到了Lock和synchronized都能正常的保证数据的一致性(上文例子中执行的结果都是20000000),也看到了Lock的优势,那究竟他们是什么原理来保障的呢?今天我们就来探讨下Java中的锁机制! Synchronized是基于JVM来保证数据同步的,而Lock则是在硬件层面,依赖 阅读全文
posted @ 2016-02-24 17:33 人生设计师 阅读(29691) 评论(0) 推荐(1) 编辑
摘要:今天我们来探讨一下Java中的锁机制。前面我们提到,在JDK1.5之前只能通过synchronized关键字来实现同步,这个前面我们已经提到是属于独占锁,性能并不高,因此JDK1.5之后开始借助JNI实现了一套高效的锁实现! JDK5以后锁的接口是JUC中的Lock,我们来先看一下他的相关API文档 阅读全文
posted @ 2016-02-23 22:41 人生设计师 阅读(2070) 评论(0) 推荐(0) 编辑
摘要:在JDK1.5之前。Java主要靠synchronized这个关键字保证同步,已解决多线程下的线程不安全问题,但是这会导致锁的发生,会引发一些个性能问题。 锁主要存在一下问题 (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2)一个线程持有锁会导致其它所有需要 阅读全文
posted @ 2016-02-23 22:37 人生设计师 阅读(6462) 评论(1) 推荐(0) 编辑
摘要:前面大致提到了JDK中的一些个原子类,也提到原子类是并发的基础,更提到所谓的线程安全,其实这些类或者并发包中的这么一些类,都是为了保证系统在运行时是线程安全的,那到底怎么样才算是线程安全呢? Java并发与实践一书中提出,当多个线程同时访问一个类的时候,如果不用考虑这些线程在运行时环境下的调度和交替 阅读全文
posted @ 2016-02-23 22:36 人生设计师 阅读(9035) 评论(0) 推荐(0) 编辑
摘要:我们知道,JDK1.5以后引入了并发包(java.util.concurrent)用于解决多CPU时代的并发问题,而并发包中的类大部分是基于Queue的并发类,Queue在大多数情况下使用了原子类(Atomic)操作,因此要了解Concurrent包首先要了解Atomic类。 在很多时候,我们需要的 阅读全文
posted @ 2016-02-23 22:30 人生设计师 阅读(1400) 评论(0) 推荐(0) 编辑
摘要:9、Semaphore Semaphore是并发包中用于控制某个资源访问个数的类,例如数据库的连接池,我们用代码来演示一下一个连接池的实现: package com.yhj.container.concurrent; import java.util.ArrayList; import java.u 阅读全文
posted @ 2016-02-23 22:18 人生设计师 阅读(873) 评论(0) 推荐(0) 编辑
摘要:6、ThredPoolExecutor ThredPoolExecutor是基于命令模式下的一个典型的线程池的实现,主要通过一些策略实现一个典型的线程池,目前已知的策略有ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPoli 阅读全文
posted @ 2016-02-23 22:12 人生设计师 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:从JDK1.5以后,Java为我们引入了一个并发包,用于解决实际开发中经常用到的并发问题,那我们今天就来简单看一下相关的一些常见类的使用情况。 1、ConcurrentHashMap ConcurrentHashMap其实就是线程安全版本的hashMap。前面我们知道HashMap是以链表的形式存放 阅读全文
posted @ 2016-02-23 21:28 人生设计师 阅读(8768) 评论(2) 推荐(0) 编辑
摘要:CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 主要方法 public CountDownLatch(int count); public void countDown(); public void await() throws 阅读全文
posted @ 2016-02-21 22:27 人生设计师 阅读(668) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示