- 博客(64)
- 资源 (27)
- 问答 (1)
- 收藏
- 关注
转载 Raphael Js矢量库API简介:
Raphael Js矢量库API简介:Raphael Javascript 是一个 Javascript的矢量库。2010年6月15日,著名的JavaScript库ExtJS与触摸屏代码库项目jQTouch,以及SVG、VML处理库Raphael合并,形成新的库Sencha。主要应对HTML5等新趋势,加强丰富图形和触摸屏功能的重要举措。Raphael Javascript 的创始人 D...
2018-10-29 14:00:22 646
转载 mysql索引必须了解的几个重要问题
本文讲述了mysql索引必须了解的几个重要问题。分享给大家供大家参考,具体如下:1、索引是做什么的?索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。大多数MySQL索引(PRIMARY KEY、U...
2018-10-12 15:01:56 280 1
转载 mysqllogbin操作命令
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Rep...
2018-10-12 15:01:46 1253
转载 mysql5.6数据库同步,单向双向同步问题
windows下MySQL5.6实现主从数据库同步数据 mysql5.6数据库同步,单向双向同步问题一.单向同步主数据库(mysql5.6)192.168.1.104从数据库(mysql5.6)192.168.1.105 略去创建库的步骤,这里认为你同步的数据库已经存在,而且主从数据库的库和表结构均相同 1.在主数据库上创建用户insertinto MySQL...
2018-10-12 15:01:21 191
转载 基于Token的WEB后台认证机制
基于Token的WEB后台认证机制几种常用的认证机制HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外...
2018-10-12 15:01:04 255
转载 深入理解Java8 Lambda
深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)作者:Lucida微博:@peng_gong 豆瓣:@figure9原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language-features本文谢绝转载,如需转载需征得作者本人同意,谢谢。深入理解Java 8 Lamb...
2018-10-12 15:00:54 182
转载 深入理解Java8 Lambda2
[转]深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)以下内容转自:作者:Lucida微博:@peng_gong豆瓣:@figure9原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-library-features本文谢绝转载,如需转载需征得作者本人同意,谢谢。--...
2018-10-12 15:00:42 175
转载 Mysql参数性能的优化
Mysql优化系列(1)--Innodb引擎下mysql自身配置优化 1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也...
2018-10-12 15:00:30 293
转载 MySQL Explain执行计划详解
MYSQL 5.6.3以前只能EXPLAIN SELECT; MYSQL5.6.3以后就可以EXPLAIN SELECT,UPDATE,DELETEEXPLAIN 语法例子:mysql> explain select customer_id,a.store_id,first_name,last_name, b.manager_staff_id from customer a le...
2018-10-12 15:00:17 188
转载 配置Tomcat以指定的身份(非root)运行
好记性不如烂笔头记录工作中的点滴配置Tomcat以指定的身份(非root)运行 本文依赖的环境:CentOS(大部分内容适用于其他Linux发行版)已安装并配置好JVM环境已安装并配置好gcc、make等编译工具 1. 下载Tomcat安装包并解压缩cd /optwget http://www.us.apache.org/dist/tomcat/to...
2018-10-12 14:59:59 565
转载 BIO与NIO、AIO的区别(这个容易理解)
BIO与NIO、AIO的区别(这个容易理解)2016年10月20日 15:52:49阅读数:71752 IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务...
2018-10-12 14:59:44 161
转载 JUC源码分析-集合篇:集合框架
从JDK1.5开始,Java针对集合类提供了线程安全版本的实现,接下来我们将逐个分析JUC集合类的具体实现,本篇首先介绍一下整个JUC集合类的框架。1. List和Setjava.util.concurrent:List和SetCopyOnWriteArrayList:相当于线程安全的ArrayList,通过显式锁 ReentrantLock 实现线程安全。允许存储null值。...
2018-10-12 14:58:56 528
转载 JUC源码分析-集合篇(三):ConcurrentSkipListMap和ConcurrentSkipListSet
ConcurrentSkipListMap 是一个线程安全的有序的哈希表,并发安全主要由 CAS 来实现。内部数据存储使用了跳表(Skip Lisy),时间复杂度O(log n),空间复杂度O(n)。ConcurrentSkipListSet 完全是由 ConcurrentSkipListMap 实现,它们俩的关系就像 TreeMap 和TreeSet 。本章我们重点分析ConcurrentS...
2018-10-12 14:58:49 406
转载 JUC源码分析-集合篇(四):ConcurrentLinkedQueue
Queue 是“生产者-消费者”模型的重要实现,在实际应用中,众多消息系统(例如RocketMQ、ActiveMQ等)都是基于Queue实现。从本篇开始,我们会对JUC中所有的Queue进行逐一讲解。概述ConcurrentLinkedQueue 是单向链表结构的无界并发队列。从JDK1.7开始加入到J.U.C的行列中。使用CAS实现并发安全,元素操作按照 FIFO (first-i...
2018-10-12 14:58:43 284
转载 JUC源码分析-集合篇(五):ConcurrentLinkedDeque
ConcurrentLinkedDeque 是双向链表结构的无界并发队列。从JDK 7开始加入到J.U.C的行列中。使用CAS实现并发安全,与 ConcurrentLinkedQueue 的区别是该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头和尾同时操作(插入/删除)。适合“多生产,多消费”的场景。内存一致性遵循对 ConcurrentLinkedDeque 的插入操作先行发...
2018-10-12 14:58:36 810 1
转载 先行发生原则(happens-before)
Java内存模型是通过各种操作来定义的,包括对变量的读/写操作,监视器的加锁和释放操作,以及线程的启动和合并操作。Java 内存模型为程序中所有的操作定义了一个偏序关系,称之为 Happens-Before 。在并发编程中,这个概念尤为重要。偏序关系偏序关系≼是离散数学中集合上的一种关系,具有反对称、自反和传递属性。但对于任意两个元素x,y来说,并不需要一定满足 x≼y 或 y≼x 的...
2018-10-12 14:58:30 278
转载 JUC源码分析-JUC锁(六):StampedLock
1. 概述StampedLock是JDK 8新增的读写锁,跟其他同步锁不同,它并不是由AQS实现的。它是一个基于能力(capability-based)的锁,提供了三种模式来控制 read/write 的获取,并且内部实现了自己的同步等待队列。本篇我们来详细分析在摒弃了AQS之后的StampedLock的实现。 StampedLock的状态由一个版本和模式构成。锁获取方法返回一个 l...
2018-10-12 14:58:19 330
转载 JUC源码分析-JUC锁(五):Phaser
1. 概述Phaser是JDK 7新增的一个同步辅助类,在功能上跟CyclicBarrier和CountDownLatch差不多,但支持更丰富的用法。本篇将从多个方面分析这个同步类。Phaser运行机制如下:Phaser运行机制Registration(注册): 跟其他barrier不同,在phaser上注册的parties会随着时间的变化而变化。任务可以随时注册(使用方法r...
2018-10-12 14:58:13 320
转载 JUC源码分析-JUC锁(四):CyclicBarrier
1.概述CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。如果一个程序中有固定的线程数,并且线程之间需要相互等待,这时候CyclicBarrier是一个很好的选择。之所以叫它cyclic,是因为在释放等待线程之后,它可以被重用。CyclicBarrier运行机制CountDownLatch和C...
2018-10-12 14:58:07 159
转载 JUC源码分析-JUC锁(一):ReetrantLock
1. 概述ReentrantLock是一个可重入的互斥锁,也被称为“独占锁”。在上一篇讲解AQS的时候已经提到,“独占锁”在同一个时间点只能被一个线程持有;而可重入的意思是,ReentrantLock可以被单个线程多次获取。ReentrantLock又分为“公平锁(fair lock)”和“非公平锁(non-fair lock)”。它们的区别体现在获取锁的机制上:在“公平锁”的机制下,线程...
2018-10-12 14:57:56 272
转载 JUC源码分析—AQS
1. 概述AbstractQueuedSynchronizer,简称AQS。是一个用于构建锁和同步器的框架,许多同步器都可以通过AQS很容易并且高效地构造出来,如常用的ReentrantLock、Semaphore、CountDownLatch等。基于AQS来构建同步器能带来许多好处。它不仅能极大地减少实现工作,而且也不必处理在多个位置上发生的竞争问题。在基于AQS构建的同步器中,只可能在一...
2018-10-12 14:57:46 324
转载 JUC源码分析—CAS和Unsafe
在对J.U.C包的源码分析之前,首先介绍下一个比较重要的概念-CAS(Compare-and-Swap)。在J.U.C包中大量使用了CAS,涉及并发或资源争用的地方都使用了sun.misc.Unsafe类的方法进行CAS操作。CAS在针对多处理器操作而设计的处理器中提供了一些特殊指令,用于管理共享数据的并发访问。现在,几乎所有的现代处理器中都包含了某种形式的原子读-改-写指令,例如比...
2018-10-12 14:57:35 282
转载 深入理解JVM之GC算法分析
上篇我们介绍了Java运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行出栈和入栈操作,栈帧中分配的内存基本上是在类结构确定下来时就是已知的。因此这几个内存区域的分配和回收都具备稳定性,方法结束或者线程结束,内存相应的就被回收了。垃圾收集所关注的主要是Java堆和方法区这部分内存,因为这部分内存的分配和回收都是动...
2018-10-12 14:57:23 165
转载 深入理解JVM之Java内存管理(基于JAVA8)
虽然说了解虚拟机的运作并不是一般开发人员必须掌握的知识,但是对于中高级开发人员来说,如果不了解JVM一些技术特性的运行原理,就无法写出更高效、更稳定的代码。并且在出现了内存相关的问题时,如果不了解虚拟机是如何使用内存的,那么进行错误排查及修复也会成为一个异常艰难的工作。本章将从JVM运行时区域和GC角度分析Java的内存分配,希望对大家有所帮助。运行时区域Java虚拟机在执行Java程...
2018-10-12 14:57:14 306
转载 Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我...
2018-10-12 14:57:08 127
转载 JUC源码分析-JUC锁(三):CountDownLatch
1. 概述CountDownLatch是一个同步辅助类,通过AQS实现的一个闭锁。在其他线程完成它们的操作之前,允许一个多个线程等待。简单来说,CountDownLatch中有一个锁计数,在计数到达0之前,线程会一直等待。CountDownLatch运行机制2. 数据结构和核心参数 CountDownLatch继承关系从锁类别来说,CountDownLatch...
2018-10-12 14:56:50 222 1
转载 JUC源码分析-集合篇(二):CopyOnWriteArrayList和CopyOnWriteArraySet
CopyOnWriteArrayList 是一个线程安全的 ArrayList,通过内部的 volatile 数组和显式锁 ReentrantLock 来实现线程安全。而 CopyOnWriteArraySet 是线程安全的 Set,它是由 CopyOnWriteArrayList 实现,内部持有一个 CopyOnWriteArrayList 引用,所有的操作都是由 CopyOnWriteArr...
2018-10-12 14:56:44 160
转载 JUC源码分析-集合篇(一):ConcurrentHashMap
ConcurrentHashMap 是一个支持并发检索和并发更新的线程安全的HashMap(但不允许空key或value)。不管是在实际工作或者是面试中,ConcurrentHashMap 都是在整个JUC集合框架里出现频率最高的一个类,所以,对ConcurrentHashMap有一个深入的认识对我们自身还是非常重要的。本章我们来从源码层面详细分析 ConcurrentHashMap 的实现(基...
2018-10-12 14:56:29 502
转载 JUC源码分析-集合篇(七):PriorityBlockingQueue
PriorityBlockingQueue 是二叉堆结构的无界优先级阻塞队列,使用显示锁 Lock 保证线程安全,是一个线程安全的 PriorityQueue。元素的优先级顺序通过 Comparator 实现,内部不可添加不可比较的值。相较于我们前几章所讲的Queue,PriorityBlockingQueue 算是一个老牌的队列了,从JDK1.5加入JUC行列,如果我们需要对队列进行优先级排序...
2018-10-12 14:56:22 183
转载 JUC源码分析-集合篇(八):SynchronousQueue
SynchronousQueue 是一个同步阻塞队列,它的每个插入操作都要等待其他线程相应的移除操作,反之亦然。SynchronousQueue 像是生产者和消费者的会合通道,它比较适合“切换”或“传递”这种场景:一个线程必须同步等待另外一个线程把相关信息/时间/任务传递给它。在之后的线程池源码分析中我们也会见到它,所以理解本章对我们之后的线程池讲解也会有很大帮助。概述Synchro...
2018-10-12 14:56:15 238
转载 JUC源码分析-集合篇(六):LinkedTransferQueue
LinkedTransferQueue 是单向链表结构的无界阻塞队列, 从JDK1.7开始加入到J.U.C的行列中。通过 CAS 和 LockSupport 实现线程安全,元素操作按照 FIFO (first-in-first-out 先入先出) 的顺序。内存一致性遵循对LinkedTransferQueue的插入操作先行发生于(happen-before)访问或移除操作。相对于其他传统 Que...
2018-10-12 14:56:04 204
转载 JUC源码分析-集合篇(九):LinkedBlockingQueue
LinkedBlockingQueue 是单向链表结构的自定义容量的阻塞队列,元素操作按照** FIFO **(first-in-first-out 先入先出) 的顺序,使用显式锁 ReentrantLock 和 Condition 来保证线程安全。链表结构的队列通常比基于数组的队列(ArrayBlockingQueue)有更高的吞吐量,但是在并发环境下性能却不如数组队列。因为比较简单,本章本来...
2018-10-12 14:55:57 213
转载 JUC源码分析-线程池篇(一):ThreadPoolExecutor
在多线程编程中,任务都是一些抽象且离散的工作单元,而线程是使任务异步执行的基本机制。随着应用的扩张,线程和任务管理也变得非常复杂,为了简化这些复杂的线程管理模式,我们需要一个“管理者”来统一管理线程及任务分配,这就是线程池。本章开始,我们将逐个分析 JUC 框架中几种不同的线程池。首先来认识一下我们的老朋友—ThreadPoolExecutor概述ThreadPoolExecutor...
2018-10-12 14:55:51 209
转载 JUC源码分析-线程池篇:线程池框架
大多数并发应用程序都是围绕“任务执行”来构造的:任务通常是一些抽象且离散的工作单元。通过把应用程序的工作分解到多个任务中,可以简化程序的组织结构。而“任务执行”离不开线程,但线程的创建和管理是非常复杂的,为了简化这些复杂的线程管理模式,我们需要一个线程管理者来统一管理线程及任务分配,这就是线程池。 从本章开始,我们将对并发编程中另一个非常重要的概念-线程池进行详细的讲解。 任务是一组...
2018-10-12 14:55:02 274
转载 JUC源码分析-线程池篇(二):FutureTask
Future 表示了一个任务的生命周期,是一个可取消的异步运算,可以把它看作是一个异步操作的结果的占位符,它将在未来的某个时刻完成,并提供对其结果的访问。在并发包中许多异步任务类都继承自Future,其中最典型的就是 FutureTask,本章我们将通过对 FutureTask 的源码解析来看一下异步任务的实现方式。概述FutureTask 为 Future 提供了基础实现,如获取任...
2018-10-12 14:54:56 190
转载 JUC源码分析-集合篇(十):DelayQueue
DelayQueue 是一个无界延时阻塞队列,元素顺序按照过期时间排序,通过显式锁 ReentrantLock 保证并发安全,队列中的存储的元素必须实现 Delayed 接口,也就是说只允许放入可以“延期”的元素。获取元素时,只有当元素期满之后才可获取。DelayQueue 相对比较简单,不过在我们之后线程池源码分析中会遇到,所以这里也简单介绍一下。概述DelayQueue 的延时策略...
2018-10-12 14:54:49 254
转载 JUC源码分析-线程池篇(三):ScheduledThreadPoolExecutor
在很多业务场景中,我们可能需要周期性的运行某项任务来获取结果,比如周期数据统计,定时发送数据等。在并发包出现之前,Java 早在1.3就提供了 Timer 类(只需要了解,目前已渐渐被 ScheduledThreadPoolExecutor 代替)来适应这些业务场景。随着业务量的不断增大,我们可能需要多个工作线程运行任务来尽可能的增加产品性能,或者是需要更高的灵活性来控制和监控这些周期业务。这些...
2018-10-12 14:54:41 1356
转载 JUC源码解析:目录(基于JDK 8)
并发编程是Java语言的重要特性之一,在Java平台上提供了许多基本的并发功能来辅助开发多线程应用程序。然而,这些相对底层的并发功能与上层应用程序的并发语义之间并不存在一种简单而直观的映射关系。因此,如何在Java并发应用程序中正确且高效地使用这些功能就成了Java开发人员的关注重点。尤其是在现今业务需求量日渐增大的情况下,理解并发编程更是显得尤为重要。序对技术人员来说,我们对技术的态...
2018-10-12 14:54:24 3078
转载 JUC源码分析-线程池篇(四):ForkJoinPool - 1
ForkJoinPool 是JDK 7加入的一个线程池类。Fork/Join 技术是分治算法(Divide-and-Conquer)的并行实现,它是一项可以获得良好的并行性能的简单且高效的设计技术。目的是为了帮助我们更好地利用多处理器带来的好处,使用所有可用的运算能力来提升应用的性能。我们常用的数组工具类 Arrays 在JDK 8之后新增的并行排序方法(parallelSort)就运用了 Fo...
2018-10-12 14:54:16 611
转载 JUC源码分析-线程池篇(五):ForkJoinPool - 2
通过上一篇(JUC源码分析-线程池篇(四):ForkJoinPool - 1)的讲解,相信同学们对 ForkJoinPool 已经有了一个大概的认识,本篇我们将通过分析源码的方式来深入了解 ForkJoinPool 的具体实现原理。概述上篇提到过,在 java.util.concurrent 包中,Fork/Join 框架主要由 ForkJoinPool、ForkJoinWorkerT...
2018-10-12 14:53:47 1171
资产管理系统
2013-10-21
中国移动电子运营维护系统
2013-10-21
学生管理系统
2013-10-21
网页设计效果
2013-10-21
网上购物车系统
2013-10-21
图书管理系统
2013-10-21
酒店客房管理系统
2013-10-21
ADT eclipse插件
2013-10-19
ExtendsExtends
2013-07-11
有关微博Oauth的疑惑?
2013-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人