多线程
凤鸣86
这个作者很懒,什么都没留下…
展开
-
synchronized的用法与注意事项
synchronized关键字在java多线程编程过程中非常的有用,不过在编程过程中由于对synchronized的理解不足,也会有很多坑。 synchronized(object)是最常用的方法,它可以锁住需要访问的代码块,使只有一个线程访问而达到同步的目的。例如如下代码:public class MulThreadTest { public static int a = 0;原创 2016-03-03 13:21:21 · 2301 阅读 · 0 评论 -
Concurrent包中Queue(1)----LinkedBlockingQueue
LinkedBlockingQueue:该类实现了BlockingQueue接口,采用链接的Node作为数据结构,在弹出队列时,采用FIFO的策略,存储默认数据量为 Integer.MAX_VALUE。接下来看一下它的部分实现方法:/***数据结构**/ static class Node<E> { E item; Node<E> next; Nod原创 2016-05-11 12:50:42 · 343 阅读 · 0 评论 -
Concurrent包中Queue(2)----ArrayBlockingQueue
ArrayBlockingQueue:该类实现了BlockingQueue接口,采用数组Array作为数据结构,在弹出队列时,采用FIFO的策略,初始化的时候需要手动指定初始大小。接下来看一下部分代码:/***初始化代码**/public ArrayBlockingQueue(int capacity, boolean fair) { if (capacity <= 0)原创 2016-05-11 12:52:30 · 353 阅读 · 0 评论 -
Concurrent包中的线程池
一、线程的生成在corrent包中为我们提供了线程池的实现类Executors。Executors生成线程池有以下几种方式://固定线程数线程池1.newFixedThreadPool(int nThreads)2.newFixedThreadPool(int nThreads, ThreadFactory threadFactory)//一个线程的线程池3.newSingleThreadE原创 2016-04-29 12:41:24 · 401 阅读 · 0 评论 -
Concurrent包中ConcurrentHashMap
自从jdk1.5之后,JDK增加了ConcurrentMap接口,这个接口是对应的 java.util.Map并发集合,提供了putIfAbsent, remove,replace三个接口方法,concurrent包也提供了ConcurrentMap的实现类ConcurrentHashMap:首先说一下ConcurrentHashMap的实现方式: 相比线程安全的HashTable各种方法都加了原创 2016-05-05 13:49:50 · 475 阅读 · 0 评论 -
主从线程间的同步
1.join的使用 在编程过程中我们经常会在主线程中启动一个子线程处理一个业务,如下所示 public class ChildThread implements Runnable{ private String Tag ="ChildThread : "; @Override public void run() { tr原创 2016-08-03 12:00:49 · 443 阅读 · 0 评论 -
SimpleDateFormat多线程下的异常
今天在生产上碰到一个怪异的问题,之前一直跑的很好的xml转object程序,在日期转化的过程中报错的,经过排查原因,原来是由于SimpleDateFormat在多线程下运行造成的结果。 demo例子如下:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/***日期原创 2016-10-19 18:04:28 · 653 阅读 · 0 评论 -
分布式锁的几种使用方式(redis、zookeeper、数据库)
Q:一个业务服务器,一个数据库,操作:查询用户当前余额,扣除当前余额的3%作为手续费 synchronized lock db lock Q:两个业务服务器,一个数据库,操作:查询用户当前余额,扣除当前余额的3%作为手续费 分布式锁 我们需要怎么样的分布式锁? 可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。这把锁要是一把可重入锁(避免死锁)...转载 2018-03-20 10:19:57 · 348 阅读 · 0 评论