排序:
默认
按更新时间
按访问量

关于个人博客的所有有关说明

概述   这篇文章主要用给以后的文章的写作内容和规范做一个总体介绍。   首先,这里简单说明一下理由。虽然博客最早的文章比较早但是相当长时间内文章的质量和数量都相当低。但是近来确实觉得博客是一个很好的学习资源,而且对个人来说也是一个很好的总结自己学习知识和经验的机会。通过对今后的文章做一些简单...

2016-07-25 17:53:37

阅读数:929

评论数:0

从同步异步、阻塞非阻塞到5种IO模型

同步异步、阻塞非阻塞同步与异步同步与异步在不同的场景下有不同的概念,在IO模型中的同步异步,主要区别在当任务A调用任务B的过程中,进程A是否继续进行。 如果A等待B的结果,则为同步 如果A不等待B的结果,则为异步 同步状态下任务A的执行时依赖于任务B的,任务A成功是依赖于成功B的。而异步模式下...

2017-08-13 10:45:28

阅读数:375

评论数:0

渲染web视图

6将模型数据渲染成HTML 6.1 理解视图解析 在MVC模型中,控制器将数据填充到模型中,然后将模型传递给一个用来渲染的视图。控制器中返回的String类型的值是视图的名称。 逻辑处理和视图渲染是解耦的,控制器方法和视图在模型内容上达成一致,除此之外再无关联。

2017-06-01 16:45:41

阅读数:1205

评论数:0

hibernate的update及JDBC数据库批量操作

Session.update()和Query.update()的区别最本质的区别是Session.update()更新的实体。而Query.update()更新的是执行SQL语句。 由此会带来一些问题。性能问题首先如果要使用Session去更新数据库需要执行一个获取实体的操作,也就是说需要先获取...

2017-03-31 15:19:04

阅读数:592

评论数:0

日常小结-java线程状态的转移

JAVA线程的状态Thread.State和虚拟机状态之间异同。首先JAVA的线程状态,其定义可以从Thread.State的定义中看出NEW:初始状态 RUNNABLE:运行状态 BLOCKED:阻塞状态 WAITING/WAIT_WAITING:等待其他线程执行相应操作后运行 TERM...

2017-03-10 16:28:57

阅读数:467

评论数:0

netty的IM项目小结

关于netty的主要用途的理解,netty的线程模型和IO模型高效的理解。 关于自己一个个人小IM项目的介绍和反思。

2017-02-27 22:22:16

阅读数:5970

评论数:4

源码分析-FutureTask

介绍FutureTask的实现原理。

2017-02-26 14:36:22

阅读数:458

评论数:0

源码分析-Semaphor

semaphorejava中的Semaphore主要用来限制线程的数量。而不是用来限制资源的访问。Semaphore所拥有的集是非常抽象的集合。所以说Semaphore在获取和是否的过程中不会持有特定对象的锁。即使排除java的语义概念,锁和信号量,虽然都是基于等待唤醒机制,但是也是不同的同步组件...

2017-02-24 14:53:52

阅读数:382

评论数:0

源码分析-Phaser

Phaser 使用方法 这是一个比CyclicBarrier更加灵活的同步屏障。从灵活性的角度来说Phaser>CyclicBarrier>CountDownLatch。 Phaser中有一个概念叫阶段(用phaser)表示,这个只能增长不能减小。每个阶段可以有不同数量的分阶...

2017-02-23 22:35:34

阅读数:761

评论数:0

源码分析-CyclicBarrier

CyclicBarrier从用法上来说,CyclicBarrier可能看出是CountDownLatch的高级版本,增加了重置的功能,对于多个线程的中断提供了通知的功能。具体的用法通过api就有比较详细的介绍。内部类Generation-如何实现重置功能的首先CyclicBarrier内部有一个内...

2017-02-16 13:31:01

阅读数:1858

评论数:0

源码分析-CountDownLatch

CountDownLatch基本用法CountDownLatch会接受一个初始化的int值count,通过调用await方法阻塞当前线程。通过其他线程调用countDown来降低当前状态值,当当前状态将至0 时,所有阻塞在CountDownLatch的线程都会立刻从await返回。CountDow...

2017-02-15 20:05:58

阅读数:267

评论数:0

源码分析-ThreadPoolExecutor

接口 首先说一下几个Executor相关的接口 Executor:这个接口的主要功能的使是的策略与机制的分离,主要就是可以将提交任务的线程和执行任务的线程分开,异步的进行。当然特殊情况下也是同步进行的。只有一个方法就是void execute(Runnable command) Exec...

2017-02-13 14:39:53

阅读数:297

评论数:0

Protobuf3语言指南

定义一个消息类型 指定字段类型 分配标识号 指定字段规则 添加更多消息类型 添加注释 保留标识符(Reserved) 从.proto文件生成了什么? 标量数值类型 默认值 枚举 使用其他消息类型 导入定义 使用proto2消息类型 嵌套类型 更新一个消息类型 Any Oneof 使用Oneo...

2017-01-25 22:14:47

阅读数:52264

评论数:3

源码分析-ConcurrentHashMap

一个支持并发的提取和修改的散列表。这个类和hashtable准守相同的规范,并且每个版本都对应相同的功能规范。虽然这是一个线程安全的类,但是他并不依赖于一个整体的锁,没有一个锁可以锁住整个元素而静止所有访问。这个类和hashtable可以互操作。 提取操作如get。不会阻塞,所以有可能被更新方法...

2017-01-18 15:05:02

阅读数:437

评论数:0

源码分析-CopyOnWriteArrayList

概述 doc文档 一个线程安全的ArrayList对于所有的可变操作都使用一个基于数组的新拷贝实现。 通常的情况下这样做的代价非常大,但是当遍历操作远远大于修改操作的时候这样做更有效率,或者当你不希望使用同步的方式遍历操作同时又希望可以排除并发干扰的时候也很有效。快照类型的迭代器使用给指向...

2017-01-13 20:46:35

阅读数:228

评论数:0

源码分析-PriorityBlockingQueue

PriorityBLockingQueue-文档部分 doc文档 PriorityBlockingQueue是无界的阻塞队列。当然如果资源耗尽的看情况下也是会出现添加失败的情况。PriorityBlockingQueue提供的迭代器并不保证按照某一顺序顺序迭代所有元素(和有限队列一致,可以见另...

2017-01-12 21:04:08

阅读数:965

评论数:0

源码分析-SynchronousQueue

SynchronousQueue SynchronousQueue作为阻塞队列的时候,对于每一个take的线程会阻塞直到有一个put的线程放入元素为止,反之亦然。在SynchronousQueue内部没有任何存放元素的能力。所以类似peek操作或者迭代器操作也是无效的,元素只能通过put类操作或者...

2017-01-05 21:18:42

阅读数:1397

评论数:0

leetcode-124. Binary Tree Maximum Path Sum

leetcode-124. Binary Tree Maximum Path Sum题目: 这题显然是需要迭代的,但是每次迭代中却需要进行很多次比较,所以对于结果我使用了域。 针对一个节点需要比较这几个, 其左子节点对应的最大值, 其右子节点对应的最大值, 其从左子节点-根节点-右节点之和, 其...

2017-01-04 17:15:19

阅读数:253

评论数:0

leetcode-123. Best Time to Buy and Sell Stock III

leetcode-123. Best Time to Buy and Sell Stock III题目: 和前2题不同,这里需要计算的是最多两次交易,而且要求不能同时拥有两个股票。 这题思路就是分治算法,从0到i天之内。每一天都可以将这段时间分割成为两个时间段,然后去求其最大值之和就好。 但是这...

2017-01-04 17:10:57

阅读数:212

评论数:0

leetcode-122. Best Time to Buy and Sell Stock II

leetcode-122. Best Time to Buy and Sell Stock II题目: 无限次交易就是计算所有增序列的和

2017-01-04 17:04:41

阅读数:145

评论数:0

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