随笔分类 - java / java并发
摘要:线程池,既然是个池子里面肯定就装很多线程。 如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁 线程,如此一来会大大降低系统的效率。可能出现服务器在为每个请求创建新线程和销毁线 程上花费的时间和消耗的系统资源要比处理实际的用户请求的时间和资源更多。因此Java中提供线程池对
阅读全文
摘要:CountDownLatch: 可以让一个线程等待其他线程完成了各自的工作之后再执行。比如说一个切菜,一个人切肉,都准备完毕之后才能炒肉。 构造方法: public CountDownLatch(int count) count等待的线程数量 关键API: countDown() 分线程执行完减少计
阅读全文
摘要:Semaphore意思的信号量,它的作用是控制访问特定资源的线程数量 构造方法: public Semaphore(int permits) public Semaphore(int permits, boolean fair) permits:允许同时访问的线程数量 fair:是否公平,若true
阅读全文
摘要:Synchronized是jvm内置的锁;而java.util.concurrent包下面的Lock锁是大佬(Doug Lea)用java代码实现的显示锁。 Juc包下面锁相比jvm内置的锁更加灵活。围绕着AQS(AbstractQueuedSynchronizer)实现了一系列性质的锁,比如共享/
阅读全文
摘要:首先了解一下JMM中定义的内存操作: 一个线程操作数据时候都是从主内存(堆内存)读取到自己工作内存(线程私有的数据区域)中再进行操作。对于硬件内存来说,并没有工作内存和主内存的区分,这都是java内存模型划分出来的,它只是一种抽象的概念,是一组规则,并不是实际存在的。Java内存模型中定义了八种同步
阅读全文
摘要:1.线程是否要锁住同步资源:锁住 悲观锁;不锁住 乐观锁 2.锁住同步资源失败线程是否要阻塞:不阻塞 自旋锁/适应性自旋锁 3.synchronized关键字优化之后的几个状态流转:无锁-->偏向锁-->轻量级锁-->重量级锁 4.多个线程竞争锁时是否排队:排队--公平锁;先尝试插队(直接抢锁)插队
阅读全文
摘要:之前用定时任务的线程池,设置了个任务,但是突然今天产品说,某些个操作需要中断某些任务(如果任务还没有执行),使其不能再到点执行了。于是查了API果然有这样一个方法。 一看API,需要移除的是一个Runnable对象,想当然的就把任务调度的传入的Runable对象保留下来,然后进行删除。简要代码如下
阅读全文

浙公网安备 33010602011771号