java concurrent包的学习(转) http://my.oschina.net/adwangxiao/blog/110188 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程…
分类:java并发
2015年Java开发岗位面试题归类
下面是我自己收集整理的Java岗位今天面经遇到的面试题,可以用它来好好准备面试。 一、Java基础 1. String类为什么是final的。 2. HashMap的源码,实现原理,底层结构。 3. 说说你知道的几个Ja…
java多线程:并发包中ReentrantReadWriteLock读写锁的原理
一:读写锁解决的场景问题—>数据的读取频率远远大于写的频率的场景,就可以使用读写锁。二:读写锁的结构—>用state一个变量。将其转化成二进制,前16位为高位,标记读线程获取锁的次数。…
java锁的种类以及辨析(转载)
java锁的种类以及辨析(一):自旋锁 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但…
Java多线程系列--“JUC原子类”02之 AtomicLong原子类
概要 AtomicInteger, AtomicLong和AtomicBoolean这3个基本类型的原子类的原理和用法相似。本章以AtomicLong对基本类型的原子类进行介绍。内容包括:AtomicLon…
Juc开启三个线程打印A,B,C
要求 开启3个线程,ID分别为A,B,C,每个线程将自己的ID在屏幕上打印10遍,要求输出的结果必须按顺序显示 public class TestABCAlternate { public static void mai…
Java并发(基础知识)—— 创建、运行以及停止一个线程
在计算机世界,当人们谈到并发时,它的意思是一系列的任务在计算机中同时执行。如果计算机有多个处理器或者多核处理器,那么这个同时性是真实发生的;如果计算机只有一个核心处理器那么就只是…
Java线程池的工作原理与实现
简单介绍 创建线程有两种方式:继承Thread或实现Runnable.Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方…
java核心学习(十九) javaNIO框架---文件锁
在上一节提到的FileChannel中提供了lock()/tryLock()方法可以获得文件锁FileLock对象,从而锁定文件,这里的文件锁是进程级别的锁,而非线程锁。 lock()方法是阻塞试的,当调用…
Java计算手机九宫格锁屏图案连接9个点的方案总数
(一)问题 九宫格图案解锁连接9个点共有多少种方案? (二)初步思考 可以把问题抽象为求满足一定条件的1-9的排列数(类似于“八皇后问题”),例如123456789和987654321都是合法的(按照从上到下、从左到右、…
java多线程无锁和工具类
1 无锁 (1) cas (compare and swap) 设置值的时候,会比较当前值和当时拿到的值是否相同,如果相同则设值,不同则拿新值重复过程;注意,在设置值的时候,取值+比较+设值 是一条cpu语句,在这个过程…
并发编程学习总结(四) :java 显式锁ReentrantLock使用详解之lock()\unlock() 加锁与释放锁
在大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取。如果两个线程存取相同的对象,并且每一个线程都调用了一个修改该对象状态的方法,那么线程彼此踩了对方的脚,根据各线程访问数据的次序,可能会产生讹误的对…