自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 203

原创 java多线程编程-构建自定义的同步工具

一、条件队列 1. 标准形式:void stateDependentMethod() throws InterruptedException{ synchronized(lock) { //首先要持有锁 while(!conditionPredicate()) //在唤醒后需再次确认,以防止在唤醒和获取锁之间的时间状态再次改变 lock.w

2017-01-03 17:06:18 203

原创 线程活跃性危险

发生死锁的原因: 1.1 锁顺序死锁:synchronized(left){ synchronized(right){ ... }}synchronized(right){ synchronized(left){ ... }}1.2 动态的锁顺序死锁 (获取锁的顺序由参数决定):func(A,B){ synchronized(A){

2017-01-03 15:25:42 275

原创 深度和广度节点搜索,对应的单线程与多线程版本

节点操作接口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 412

原创 信号量和“调用者运行策略”

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 272

原创 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 1166

原创 java 多线程编程 第五章

java多线程编程第5章1 同步容器类:  将他们的状态封装,并对公共方法进行同步1.1 synchronized 表示对对象上锁1.2带客户端加锁的迭代   synchronized(vector){  ...      //整个方法期间,vector均会被独享   } 1.3 并发容器 ·ConcurrentHashMap 线程安全的map  put

2016-10-11 19:58:53 182

原创 Lucene In Action 学习笔记——概览

第 一章 概览1.索引组件将文本转化为快速搜索的格式,叫索引。包括的步骤 1.获取内容(Lucene并不实现) ·内容获取必须是以增量方式运行,即只访问上次运行后内容有改变的; ·活动的,持续运行的后台服务,能实时获取新文档或改变信息 ·基于权限,需为文档增加访问控制列表,已验证用户的合法性2.建立文档 ·文档的主要带值的域:标题,正文,摘要,作者和链接 ·正文较大时,需建立额外的域存放

2016-09-01 20:15:44 1012

原创 spring基础——ssh学习笔记

Spring 基础1.Spring将容器中的一切对象称为bean 2.spring通过xml(或配置文件)管理bean,利用反射beans>bean id="" class="必须是带包名的完整类名">beans>3.ApplicationContext是最常用的接口,有两个具体实现的类: ClassPathXmlApplicationContext:从类加载路径上搜索配置文件

2016-08-31 14:45:37 196

原创 Java编程的动态性(author Dennis M. Sosnoski )学习——学习笔记(1)

类加载器装入到JVM的类由类装入器控制。JVM中构建了引导程序类装入器。由引导程序对类进行验证。 同时应用程序可以自定义类装载器(派生自java.lang.ClassLoader)。每个构造好的类某种意义上由类装载器所“拥有”。类装入器通常保留它们所装入类的映射,从而当再次请求某个类时,能通过名称找到该类。 类装载器为树状结构。树根是引导程序装载器。在类装载器处理实例请求时,会递归检查父类。这

2016-08-29 17:04:12 410

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除