努力奔跑中的coder

源代码的github地址:https://github.com/louyuting

排序:
默认
按更新时间
按访问量
RSS订阅

LockSupport-线程阻塞原语

基本介绍 基本的线程阻塞原语,被用于创建锁和其他同步类上。长久以来对线程阻塞与唤醒经常我们会使用object的wait和notify,除了这种方式,JDK1.6之后并发包还提供了另外一种方式对线程进行挂起和恢复,它就是并发包子包locks提供的LockSupport。 使用实例与简介 p...

2018-08-07 16:04:37

阅读数:128

评论数:0

J.U.C-Fork/Join框架

Fork/Join 框架本文主要介绍Fork/Join框架的基本原理、算法、设计思路与实现 1)什么是Fork/Join 框架 2)Fork/Join框架的算法 3)Fork/Join框架核心类以及它们之间的协作 4)Fork/Join使用实例 5)Fork/Join实...

2017-11-15 14:55:13

阅读数:319

评论数:0

J.U.C-DelayQueue原理与应用

DelayQueue原理与应用前面刚写了一篇关于 PriorityQueue 原理与应用 的文章,其实是为分析DelayQueue服务的。DelayQueue是一个延迟队列,用一句话来说就是:DelayQueue是一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部是延迟期满后保存时...

2017-11-13 18:33:31

阅读数:281

评论数:0

如何捕获java线程中的逃逸的异常

由于Java线程的本质特征,当抛出异常的时候就终止了如果再进行catch,都不在一个线程里面,所以无法捕捉到异常。Java线程中,要在run()方法中把一切的异常都处理掉,可以使用try-catch块。不能让这个线程抛出异常,因为如果我们不使用特殊的方式的话,我们是无法捕获从这个线程中逃逸的异常的...

2017-03-11 16:08:45

阅读数:3127

评论数:0

J.U.C--线程池ThreadPoolExecutor

这一篇博文主要讲解关于Java的线程池相关的内容,主要包括: (1) Executor接口以及其子接口 (2)Executor的生命周期 (3)Executors (4)任务拒绝策略 (5)线程池 ThreadPoolExecutor实现原理 1. Executor接...

2017-03-11 14:49:04

阅读数:1930

评论数:0

J.U.C--ThreadLocal的应用与使用原理

今天在电面网易游戏的时候,面试官问到了ThreadLocal的作用,感觉自己答的不好,只答除了作用,关于ThreadLocal底层的具体实现并没有说明白,于是赶忙看了下源码,从源码层次理解一下ThreadLocal的实现原理。 1. 首先说说ThreadLocal有什么作用?ThreadLoca...

2017-02-14 20:17:25

阅读数:369

评论数:0

J.U.C--locks--Condition

首先来解释一下Condition有什么作用:Condition的作用和Java原生的通过synchronized与wait()和nitofy()/notifyAll()方法相结合实现等待/通知模型的作用是一样的。Condition是一个多线程间协调通信的工具类。 我们都知道synchronized...

2017-01-29 12:15:03

阅读数:223

评论数:0

J.U.C--locks--ReentrantLock

在JDK5之前对共享变量的访问只有synchronized和volatile。在JDK5.0之后增加了显示锁ReentrantLock(可重入锁、独占锁)。需要注意的是,ReentrantLock并不是用来替代synchronized的,而是作为一种高级主题,在内置加锁机制synchronized...

2017-01-28 21:05:24

阅读数:210

评论数:0

J.U.C--locks--AQS分析

看一下AbstractQueuedSynchronizer(以下简称AQS)的子类就可以知道,J.U.C中宣传的封装良好的同步工具类Semaphore、CountDownLatch、ReentrantLock、ReentrantReadWriteLock、FutureTask等虽然各自都有不同特征...

2017-01-26 23:17:38

阅读数:581

评论数:0

J.U.C-包下的类分类

今天在网上发现了一个对J.U.C 包下的并发类进行了分类,主要分为了以下五部分: 并发工具类 显示锁 原子变量类 并发集合 Executor线程执行器 思维导图如下: 后面会根据这五部分对J.U.C做一个大致的原理分析。

2017-01-26 20:14:34

阅读数:689

评论数:0

Java多线程问题总结

这篇博客是在看了微信公众号给我推送的一篇博客之后,然后根据自己的理解做的一个总结,也可以说是在别的blog的一个再总结: 参考博客:http://www.cnblogs.com/xrq730/p/5060921.html 主要是关于Java多线程中的40个问题的总结: 多线程有什么用? 创建...

2017-01-24 16:34:05

阅读数:583

评论数:1

死锁

Java程序无法从死锁中恢复过来,所以设计程序时一定要排除死锁的可能。死锁中的经典问题就是哲学家进餐问题。 死锁的常见类型锁顺序死锁下图所示就是最典型的锁顺序死锁: ……不知道写啥,以后再写吧

2017-01-12 11:06:22

阅读数:342

评论数:0

J.U.C--扩展ThreadPoolExecutor

ThreadPoolExecutor是可以扩展的,它提供了几个在子类中改写的方法,比如:beforeExecute()、afterExecute()、和terminated()方法。这些方法可以扩展ThreadPoolExecutor的执行行为。比如剪监控线程池或则是添加日志之类的。下面是一个例子...

2017-01-12 10:35:55

阅读数:202

评论数:0

J.U.C--ThreadPoolExecutor的配置与使用

ThreadPoolExecutor为Executor提供了基本的实现,这些Executor是由Executors中的静态工厂方法返回的。ThreadPoolExecutor是一种灵活的、稳定的线程池,允许进行各种定制。1. Executors中的静态工厂方法其实不管是newCachedThrea...

2017-01-11 17:19:16

阅读数:359

评论数:0

设置线程池的大小

线程池的理想大小取决于被提交任务的类型以及所部属系统的特性。在系统中一般不固定线程池的大小,而是通过某种配置机制来提供。或则根据处理器的数量来决定:我们可以通过如下代码来获取处理器的数量://获取处理器的数量 System.out.println(Runtime.getRuntime().ava...

2017-01-11 16:56:51

阅读数:1598

评论数:0

J.U.C--Executor框架

在一般的web服务端,如果我们通过对每一个请求都创建一个线程来处理,这样确实可以提升性能,但是也有个非常严重的问题,当遇到请求峰值的时候,由于没有创建线程做限制,可能会导致创建非常多的线程,大大加重系统的负载,导致不可用的状态。对于这个问题我们可以通过使用有界阻塞队列来防止高负荷的应用程序耗尽内存...

2017-01-11 16:18:02

阅读数:198

评论数:0

J.U.C--同步工具类

前面已经介绍了:同步容器类、并发容器类、阻塞队列(BlockingQueue),接下来介绍同步工具类。 同步工具类可以是任何一个对象,只要根据自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,其余的还包括:信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)...

2017-01-11 08:08:37

阅读数:318

评论数:0

J.U.C--分段锁

前言:在分析ConcurrentHashMap的源码的时候,了解到这个并发容器类的加锁机制是基于粒度更小的分段锁,分段锁也是提升多并发程序性能的重要手段之一。 在并发程序中,串行操作是会降低可伸缩性,并且上下文切换也会减低性能。在锁上发生竞争时将通水导致这两种问题,使用独占锁时保护受限资...

2017-01-10 16:11:36

阅读数:2441

评论数:0

41. Java中的Unsafe类

Unsafe类简单讲一下这个类。Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作。这个类尽管里面的方法都是public的,但是并没有办法使用它们,JDK API文档也没有提供任何...

2017-01-07 12:58:49

阅读数:637

评论数:0

J.U.C--并发容器类之ConcurrentHashMap

JDK5 提供了多种并发容器类来改进同步容器类的性能。同步容器类将所有对容器的访问操作全部串行化了来实现线程安全,这种方式的代价是严重降低的并发性。当多个线程竞争容器锁时,吞吐量严重降低。 并发容器类的设计是专门针对多线程并发访问设计的。JDK5中新增了ConcurrentHashMap...

2017-01-07 12:53:57

阅读数:293

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭