- 博客(10)
- 收藏
- 关注
原创 非阻塞同步
非阻塞的栈//利用atomicReference实现非阻塞栈public class ConcurrentStack<E> { //栈指针 AtomicReference<Node<E>> top = new AtomicReference<Node<E>>(); public void put(E item){ Node<E> newHead = new
2017-01-06 15:21:56
218
原创 java多线程编程-构建自定义的同步工具
一、条件队列 1. 标准形式:void stateDependentMethod() throws InterruptedException{ synchronized(lock) { //首先要持有锁 while(!conditionPredicate()) //在唤醒后需再次确认,以防止在唤醒和获取锁之间的时间状态再次改变 lock.w
2017-01-03 17:06:18
236
原创 线程活跃性危险
发生死锁的原因: 1.1 锁顺序死锁:synchronized(left){ synchronized(right){ ... }}synchronized(right){ synchronized(left){ ... }}1.2 动态的锁顺序死锁 (获取锁的顺序由参数决定):func(A,B){ synchronized(A){
2017-01-03 15:25:42
286
原创 深度和广度节点搜索,对应的单线程与多线程版本
节点操作接口public interface Puzzle<P,M>{ //获取起始节点 P initialPosition(); //是否为目标节点 boolean isGoal(P position); //合法的移动路径 Set<M> legalMoves(P position); //移动之后的节点位置 P move(P pos
2016-12-19 16:09:39
452
原创 信号量和“调用者运行策略”
public class BoundedExecutor {private final Executor exec;private final Semaphore semaphore;public BoundedExecutor(Executor exec,int bound){ this.exec = exec; semaphore = new Semaphore(bound);
2016-12-16 16:17:07
280
原创 HTTP请求java组装
import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.Socket;import java.net.
2016-12-13 14:34:05
1207
原创 java 多线程编程 第五章
java多线程编程第5章1 同步容器类: 将他们的状态封装,并对公共方法进行同步1.1 synchronized 表示对对象上锁1.2带客户端加锁的迭代 synchronized(vector){ ... //整个方法期间,vector均会被独享 } 1.3 并发容器 ·ConcurrentHashMap 线程安全的map put
2016-10-11 19:58:53
190
原创 Lucene In Action 学习笔记——概览
第 一章 概览1.索引组件将文本转化为快速搜索的格式,叫索引。包括的步骤 1.获取内容(Lucene并不实现) ·内容获取必须是以增量方式运行,即只访问上次运行后内容有改变的; ·活动的,持续运行的后台服务,能实时获取新文档或改变信息 ·基于权限,需为文档增加访问控制列表,已验证用户的合法性2.建立文档 ·文档的主要带值的域:标题,正文,摘要,作者和链接 ·正文较大时,需建立额外的域存放
2016-09-01 20:15:44
1026
原创 spring基础——ssh学习笔记
Spring 基础1.Spring将容器中的一切对象称为bean 2.spring通过xml(或配置文件)管理bean,利用反射beans>bean id="" class="必须是带包名的完整类名">beans>3.ApplicationContext是最常用的接口,有两个具体实现的类: ClassPathXmlApplicationContext:从类加载路径上搜索配置文件
2016-08-31 14:45:37
207
原创 Java编程的动态性(author Dennis M. Sosnoski )学习——学习笔记(1)
类加载器装入到JVM的类由类装入器控制。JVM中构建了引导程序类装入器。由引导程序对类进行验证。 同时应用程序可以自定义类装载器(派生自java.lang.ClassLoader)。每个构造好的类某种意义上由类装载器所“拥有”。类装入器通常保留它们所装入类的映射,从而当再次请求某个类时,能通过名称找到该类。 类装载器为树状结构。树根是引导程序装载器。在类装载器处理实例请求时,会递归检查父类。这
2016-08-29 17:04:12
420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人