链接 Java线程池详解(一) Java线程池详解(二) Java调度线程池ScheduleExecutorService 上面列出了最近写的关于java线程池ScheduleExecutorService的内容,可以作…
分类:java并发
Java 并发的四种风味:Thread、Executor、ForkJoin 和 Actor
这篇文章讨论了Java应用中并行处理的多种方法。从自己管理Java线程,到各种更好几的解决方法,Executor服务、ForkJoin 框架以及计算中的Actor模型。 Java并发编程的4种风格:T…
Java多线程编程—锁优化
并发环境下进行编程时,需要使用锁机制来同步多线程间的操作,保证共享资源的互斥访问。加锁会带来性能上的损坏,似乎是众所周知的事情。然而,加锁本身不会带来多少的性能消耗,性能主要是在线程的获取锁的过程。如果只有一个线程竞争锁…
java 文件锁
今天在分析HDFS数据节点的源码时,了解到在数据节点的文件结构中,当数据节点运行时,${dfs.data.dir}下会有一个名为”in_use.lock”的文件,该文件就是文件锁。 文件加锁是 JDK1.4 引入的一种机…
【死磕Java并发】—–J.U.C之AQS(一篇就够了)
[隐藏目录] 1 独占式 1.1 独占式同步状态获取 1.2 独占式获取响应中断 1.3 独占式超时获取 1.4 独占式同步状态释放 2 共享式 2.1 共享式同步状态获取 2.2 共享式同步状态释放 3 参考资料 此篇…
JUC ArrayBlockingQueue 分析
先说说BlockingQueue BlockingQueue,JUC中定义的阻塞队列接口,为阻塞队列的实现定义了一些通用的方法,其中包括非阻塞操作以及阻塞操作 非阻塞操作: offer,add(add不常用):队列添加元…
Java同步—Callable与Future
Callable与Future Runnable、Future、Callable的区别 Runnable我们都用过,因为开启一个新的线程的时候,需要传递一个Runnable接口作为执行对象,这个接口里面只包含一个run方…
java实现哲学家进餐问题,及其死锁问题的解决
首先我们来了解一下哲学家进餐问题的背景: 话说有5个哲学家围在一张桌子上吃饭,桌上只有5g根筷子,一个要吃饭必须的得有两根筷子,哲学家要吃饭时总是先拿起左边的筷子,在拿起右边的筷子,这样最佳的情况是可同时有两人可以进餐,…
java常见知识点
深度方面: 基础: 1、事务4个特征介绍;acid 2、排序算法; 3、简单描述2、3个设计模式 4、乱码问题如何解,utf8和gbk编码本质区别是什么? 5、一致性hash算法描述? 6、冥等操作用于那…
【Java并发编程实战】-----“J.U.C”:CAS操作
CAS,即Compare and Swap,中文翻译为“比较并交换”。 对于JUC包中,CAS理论是实现整个java并发包的基石。从整体来看,concurrent包的实现示意图如下: i++是一个非常经典的操作,它几乎充…
Java-JUC(六):创建线程的4种方式
Java创建线程的4种方式: Java使用Thread类代表线程,所有线程对象都必须是Thread类或者其子类的实例。Java可以用以下4种方式来创建线程: 1)继承Thread类创建线程; 2)实现Runnable接口…
Jdk1.6 JUC源码解析(15)-SynchronousQueue
Jdk1.6 JUC源码解析(15)-SynchronousQueue 作者:大飞 功能简介: SynchronousQueue是一种特殊的阻塞队列,它本身没有容量,只有当一个线程从队列取数据的同时,另一个…