信号量Semaphore是一个控制访问多个共享资源的计数器,它本质上是一个“共享锁”。 Java并发提供了两种加锁模式:共享锁和独占锁。前面LZ介绍的ReentrantLock就是独占锁。对于独占锁而言,它每次只能有一个…
java产生死锁的简单例子
class Test implements Runnable { private boolean flag; Test(boolean flag) { this.flag=flag; } public void run(…
java中concurrent包内容
有BlockingQueue及其相关的类,跟阻塞队列有关系。前面已经做过介绍 ConcurrentHashMap,ConcurrentLinkedQueue等,这些是相关集合的线程同步版本。 Copy…
【java】并发执行ExecutorService的sumbit返回值的顺序问题
ArrayList<Future> fl = new ArrayList<Future>(); for (int i = 0; i < 10; i++) { Future&…
java面试笔记
Java基础: 1. 什么是线程池?答:线程池是一种预先创建线程的一种技术。常用线程池方法如下:newSingleThreadExecutor:创建单线程的线程池newFixedThreadPool:创建固定线程数的线程…
Java多线程并发学习-进阶大纲
1、synchronized 的实现原理以及锁优化? 2、volatile 的实现原理? 3、Java 的信号灯? 4、synchronized 在静态方法和普通方法的区别? 5、怎么实现所有线程在等待某个事件的发生才会…
线程进阶:多任务处理(17)——Java中的锁(Unsafe基础)
1. 概述 本专题在之前的文章中详细介绍了Java中最常使用的一种锁机制——同步锁。但是同步锁肯定是不适合在所有应用场景中使用的。所以从本文开始,笔者将试图通过两到三篇文章的篇幅向读者介绍Java中锁的分类、原理和底层实…
LeetCode | Palindrome Number
题目: Determine whether an integer is a palindrome. Do this without extra space. 思路: 翻转数字并与原数字比较。 代码: class Solu…
【剑指offer】判断二叉树是否平衡(左右子树高度差最多为1)
class Solution { public: bool IsBalanced_Solution(TreeNode* pRoot) { int depth = -1; return IsBalanced(pRoot,&…
Trie树实现多模匹配算法的进一步优化
之前写过一篇关于Trie树实现多模匹配算法的文章,参见:基于Trie树的多模匹配算法的实现与优化,其实还可以进一步进行优化——在空间上…
拓扑排序(猜序列,LA 4255)
看来自己图论建模的功底还不够。 百度百科说 图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代…
Wormholes (poj 3259 SPFA || Bellman_Ford 判负环)
Language: Default Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3…