随笔分类 -  Java

摘要:原文:http://blog.csdn.net/column/details/j-u-c.html在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修 改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的AB... 阅读全文
posted @ 2015-03-27 16:09 xiongjianjun 阅读(232) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/ccit0519/article/details/11241403深入理解Java内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机... 阅读全文
posted @ 2015-03-20 15:26 xiongjianjun 阅读(178) 评论(0) 推荐(0)
摘要:public abstract class AbsBatchProcess implements Runnable {// 记录条数protected int recordNum;// 空闲时间(ms)protected long idleTime;// 轮询间隔protected long int... 阅读全文
posted @ 2015-03-17 17:14 xiongjianjun 阅读(131) 评论(0) 推荐(0)
摘要:import java.util.concurrent.*;import java.util.*;public class TestGreenhouseScheduler {private volatile boolean light = false;private volatile boolean... 阅读全文
posted @ 2015-03-17 09:58 xiongjianjun 阅读(1245) 评论(0) 推荐(0)
摘要:锁设计目的:1 当db可以正常连接时,控制当前最大连接线程数量为6,最大的等待线程数为15,接下来线程如何的试图获取锁请求自己报异常。2 设置锁等待时间,当等待线程超过该时间,自动释放锁。3 当线程连接时间过长,超过5分钟,可视为db已经发生异常,将db 状态quitemode设为false,后续线... 阅读全文
posted @ 2015-03-11 14:45 xiongjianjun 阅读(229) 评论(0) 推荐(0)
摘要:常用并发辅助类 CountDownLatch Semaphore CyclicBarrier, 都基于ReentrantLock实现。1 Semaphores are often used to restrict the number of threads than can* access s... 阅读全文
posted @ 2015-03-10 15:10 xiongjianjun 阅读(109) 评论(0) 推荐(0)
摘要:Callable Runable和Future FutureTask的使用1 先看看接口定义public interface Runnable {public abstract void run();//定义为void,和thread一样,无法返回执行结果}public interface Call... 阅读全文
posted @ 2015-03-10 13:50 xiongjianjun 阅读(151) 评论(0) 推荐(0)
摘要:ReentrantLock和synchronized的选择1 synchronized的弊端,简化了代码工作,并且与异常处理操作实现了很好的交互,但是表现不够灵活,对线程控制较小,比如无法中断等待的线程,或者无法在请求获取锁时无限的等待,也没法实现非阻塞结构的加锁规则。2 reentrantlock... 阅读全文
posted @ 2015-03-09 15:17 xiongjianjun 阅读(92) 评论(0) 推荐(0)
摘要:一、 JVM的生命周期1. JVM实例对应了一个独立运行的java程序它是进程级别a) 启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点b) 运行。main()... 阅读全文
posted @ 2015-03-05 16:52 xiongjianjun 阅读(299) 评论(0) 推荐(0)
摘要:现代计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级是:寄存器-高速缓存-内存,线程计算的时候,原始的数据来自内存,在 计算过程中,有些数据可能被频繁读取,这些数据被存储在寄存器和高速缓存中,当线程计算完后,这些缓存的数据在适当的时候应该写回内存,当多个线程同时读 写某个内... 阅读全文
posted @ 2015-03-05 16:08 xiongjianjun 阅读(154) 评论(0) 推荐(0)
摘要:转自http://ifeve.com/introduce-abstractqueuedsynchronizer/提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够 成为实现大部分同步需求的基础。使用的方法是继承,... 阅读全文
posted @ 2015-03-05 14:55 xiongjianjun 阅读(273) 评论(0) 推荐(0)
摘要:概念JMM:规定了jvm有主内存(Main Memory)和工作内存(Working Memory) ,主内存存放程序中所有的类实例、静态数据等变量,是多个线程共享的,而工作内存存放的是该线程从主内存中拷贝过来的变量以及访问方法所取得的局部变量, 是每个线程私有的其他线程不能访问,每个线程对变量的操... 阅读全文
posted @ 2015-03-05 10:43 xiongjianjun 阅读(131) 评论(0) 推荐(0)
摘要:锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:[java]copyclass a=; writer(){} reader(){i=a;……}假设线... 阅读全文
posted @ 2015-02-09 16:05 xiongjianjun 阅读(680) 评论(0) 推荐(0)
摘要:原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thr... 阅读全文
posted @ 2015-02-09 15:17 xiongjianjun 阅读(161) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/songsh96/archive/2011/10/14/2211079.html一.建立数据库sqlite3.exe test.db二.双击sqlite-3_6_16目录下的程序sqlite3.exe,即可运行三.退出.exit或者.quit四.SQLi... 阅读全文
posted @ 2014-11-13 17:02 xiongjianjun 阅读(219) 评论(0) 推荐(0)
摘要:(1)channelfilechannel(cannot used with sector as it's blocking) socketchannel serversocketchannel datagramchannel(for udp) serversocketchannel is resp... 阅读全文
posted @ 2014-09-11 14:35 xiongjianjun 阅读(130) 评论(0) 推荐(0)
摘要:1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入S... 阅读全文
posted @ 2014-09-10 15:22 xiongjianjun 阅读(322) 评论(0) 推荐(0)