Eason-S

导航

2016年8月11日 #

Java并发(7):阻塞队列

摘要: 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略 阅读全文

posted @ 2016-08-11 21:35 Eason_S 阅读(569) 评论(0) 推荐(0) 编辑

2016年8月5日 #

Java并发(6):concurrent包中的Copy-On-Write容器

摘要: 一. concurrent包介绍 在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资 阅读全文

posted @ 2016-08-05 22:30 Eason_S 阅读(976) 评论(0) 推荐(0) 编辑

2016年8月4日 #

String与其他类型的转换

摘要: 首先,对于String类有一点是毫无疑问的:对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象。 一. String与StringBuilder、StringBuffer 1.1 三者之间的比较 String类后面添加字符串,在以上例子中,相当于将原有的stri 阅读全文

posted @ 2016-08-04 22:14 Eason_S 阅读(6403) 评论(0) 推荐(0) 编辑

2016年8月2日 #

Java并发(5):同步容器

摘要: 一. 同步容器出现的原因 在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。 List、Set、Queue接口分别继承了Collection接口,Map本身是一个接口。 注意Collection和Map是一个顶层接口,而List、Set、Queue则继承了Collec 阅读全文

posted @ 2016-08-02 00:10 Eason_S 阅读(282) 评论(0) 推荐(0) 编辑

2016年8月1日 #

Java并发(4):ThreadLocal

摘要: 一.对ThreadLocal的理解 ThreadLocal是java.lang包中的一个类,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 这句话从字面上看起来 阅读全文

posted @ 2016-08-01 00:25 Eason_S 阅读(329) 评论(0) 推荐(0) 编辑

2016年7月31日 #

Java并发(2):Lock

摘要: 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步 阅读全文

posted @ 2016-07-31 22:05 Eason_S 阅读(513) 评论(1) 推荐(1) 编辑

Java并发(1):synchronized

摘要: 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而 阅读全文

posted @ 2016-07-31 21:19 Eason_S 阅读(454) 评论(0) 推荐(0) 编辑

2016年7月30日 #

Java并发之——线程池

摘要: 一. 线程池介绍 1.1 简介 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这 阅读全文

posted @ 2016-07-30 17:00 Eason_S 阅读(3165) 评论(0) 推荐(0) 编辑

2016年7月23日 #

每天一个设计模式(7):单例模式

摘要: 7.单例模式 一. 定义 单例对象(Singleton)也叫单件模式,是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在(即只可以创建一个对象),并提供一个全局访问点。单件模式通过利用延时实例化的方式来创建单例,这种做法对资源敏感的对象特别重要,故常常被用来 阅读全文

posted @ 2016-07-23 23:32 Eason_S 阅读(435) 评论(0) 推荐(0) 编辑

Java集合(9):ConcurrentHashMap

摘要: 一.ConcurrentHashMap介绍 我们可以在单线程时使用HashMap提高效率,而多线程时用Hashtable来保证安全。但是,HashMap中未进行同步考虑,而Hashtable则使用了synchronized,带来的直接影响就是可选择,synchronized是针对整张Hash表的,即 阅读全文

posted @ 2016-07-23 00:02 Eason_S 阅读(843) 评论(0) 推荐(0) 编辑