自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

柠檬树

柠檬树

  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 【多线程】ReentrantLock重入锁

一、Lock接口       在java多线程中,可以使用synchronized关键字来实现线程之间同步互斥、但在JDK1.5之后并发包中新增加了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用时需要显示地获取和释放锁,虽然它缺少了隐式获取释放锁的便捷性,但是却拥有了锁获取与释放的可操作性、可中断的获取或及超时获取锁等多种syn

2018-01-30 14:48:03 524 7

原创 【多线程】线程通信之join、ThreadLocal

一、方法join       在很多情况下,主线程创建并启动子线程,如果子线程中需要进行大量的耗时运算,主线程往往将早于子线程结束之前结束。如果主线程想等待子线程执行完成之后在结束,比如子线程执行一个方法,主线程要取得这个方法的返回值,就要用到join()方法了。方法join的作用是等待线程对象销毁。线程Thread除了提供join方法之外,还提供了join(long  millis)和join(...

2018-01-29 11:43:10 652 7

原创 【多线程】线程通信之等待/通知机制

一、概念       线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体。线程间的通信就是成为整体的必用方案之一。可以说,使线程进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使开发人员对各线程任务在处理的过程中进行有效的把控和监督。二、线程的执行模式       1、互不通信的多线程模式       多个线程会在系统中并发执行。线程

2018-01-28 22:17:46 2132 8

原创 【多线程】volatile非原子的特性

一、前言:      上一遍博客中已经提及了volatile关键字虽然拥有了多个线程之间的可见性,但是却不具备同步性(也就是原子性),可以算的上是线程同步的轻量级实现,性能要比synchronized强很多,不会造成阻塞(在很多开源的框架里,比如netty的底层代码就大量使用volatile,可见netty性能一定是非常不错的)。二、实现原子性:       volatile关键字只具

2018-01-25 14:46:32 506 10

原创 【多线程】volatile关键字

一、volatile概念:       关键字volatile可以说是java虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确、完整地理解。遇到需要处理多线程数据竞争问题的时候一律使用synchronized来进行同步。       volatile关键字的主要作用是使变量在多个线程间可见。多个线程间可见指的是当一条线程修改了这个变量的值,会立即通知到其他的线程。二、内存模型原子性、可见性...

2018-01-23 21:01:34 393 9

原创 【多线程】synchronized同步代码块

一、前言       使用synchronized声明的方法在 某些情况下是有弊端的,比如A线程调用同步的方法执行一个长时间的任务,那么B线程就必须等待比较长的时间才能执行,这种情况可以使用synchronized代码块去优化代码执行时间,也就是通常所说的减少锁的粒度。/** * 使用synchronized代码块减小锁的粒度,提高性能 * @author alienware *

2018-01-23 12:31:01 31572 17

原创 java中静态代码块、构造代码块、普通代码块

优先级从高到低:静态代码块>main方法>构造代码块>构造方法>普通代码块静态代码块只执行一次,而构造代码块在每次创建对象的时候都会执行。1、普通代码块:      普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定,先出现的先执行。 public static void main(String[] args)

2018-01-23 09:31:05 348 13

原创 【多线程】线程安全、锁的同步和异步

一、基本概念       线程安全:当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。       非线程安全:非线程主要是指多个线程对同一个对象中的同一个实例变量进行操作时会出现值被更改、值不同步的情况,进而影响程序的执行流程。       synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为“互斥区”或“临界区...

2018-01-22 20:13:36 10425 65

原创 【多线程】线程的基本概念

一、前言: 提及多线程不得不提及“进程”这个概念。“百度百科”里对“进程”的解析如下:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 初看这个文字会觉得十分的抽象,难以理解。但看到下面的图片,大家可能会对“进程”有一个感性的认知。一个PID对应一个进程。...

2018-01-20 21:47:30 9784 8

原创 WebSocket协议

        一直以来,网络在很大程度上都是围绕着HTTP的请求/响应模式而构建的。客户端加载一个网页,然后直到用户单击下一页之前,什么都不会发生。在2005年左右,AJAX开始让网络变得更加动态,但所有的HTTP通信仍然是客户端控制的,这就需要用户进行互动或定期轮询,以便从服务器加载新数据。      由于HTTP协议的开销,导致它们不适用于低延迟应用。为了解决这些问题,WebSocket将网...

2018-01-16 19:57:28 249 16

原创 网络编程BIO、伪异步IO

       随着JavaI/O类库的不断发展和改进,基于网络编程会变得越来越简单;随着异步I/O功能的增强,基于Java  NIO开发的网络服务器甚至不逊于采用C++开发的网络程序。       一、传统BIO编程       网络编程的基本模型是Client/Server模型,也就是两个进程之间进行通信(服务端和客户端分别是一个进程),其中服务端提供位置信息(绑定的IP地址和监听端口),客户端...

2018-01-16 11:51:24 1071 12

原创 网络编程之Java的I/O之路

一、前言       Java之所以能够得到如此广泛的应用,除了具有“一次编写,到处运行”的平台无关性之外,还有一个重要原因是:其丰富而强大的类库以及众多第三方开源类库使得Java语言的开发更加简单和便捷。       但是,Java的一些类库在早期设计中功能并不完善或者存在一些缺陷,其中最令人恼火的就是基于同步I/O的Socket通信类库。直到JDK1.4的发布,Java才第一次支持非阻

2018-01-16 10:35:57 261 5

原创 mybatis 动态SQL

一、前言       MyBatis的强大特性之一就是它的动态SQL。在实际项目开发中,经常需要根据不同条件拼接SQL语句,拼接时不能忘记必要的空格,有时候还要注意省略掉列名列表最后的逗号,等等。在使用JDBC或其他类似持久层框架操作数据库时,处理这种情况是非常麻烦的,甚至可以用痛苦来形容,而在MyBatis中利用动态SQL这一特性可以很简单地解决这个问题。      动态SQL元素和使用

2018-01-13 17:29:58 193 2

原创 mybatis XML方式的基本用法

一、前言:       MyBatis的真正强大之处在于它的映射语句,这也是它的魔力所在。由于它的映射语句异常强大,映射器的XML文件就显得相对简单,如果将其与具有相同功能的JDBC代码进行对比,就会发现使用这种方法节省了将近95%的代码量,mybatis就是针对SQL构建的,并且比普通的方法做的更好。        mybatis3.0支持接口调用方式,mybatis使用Java的动态代

2018-01-13 16:54:15 1116 3

原创 mybatis入门

一、前言:       mybatis是一个持久层框架,支持自定义SQL查询、存储过程和高级映射。与其他的ORM(对象关系映射)框架不同,mybatis并没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联。        mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式、自由灵活生成(半自动化,大部分需要程序员编写sql)满足需求的sql

2018-01-13 15:22:47 382 4

原创 mysql 并发读写

开发多用户、数据库驱动的应用时,最大的一个问题是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。因此就有了锁机制。这也是数据库系统区别与文件系统的一个关键特性。

2018-01-06 21:39:23 4566 1

FastDHT相关安装包

资源中是FastDHT的安装包以及libfastcommon-master以及Berkeley DB。可以和FastDFS配置来完成重复文件的去重。

2018-04-24

空空如也

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

TA关注的人

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