上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 38 下一页

2017年7月5日

JDK 源码解析 —— Semaphore

摘要: 零. 简介 这是一个用来对并发计数的信号量,并发量超过一定数值则只能等待。从概念上来说,semaphore 维持着一组许可证。获取锁的时候,需要先获得 semaphore 的许可才行。 一. 从 Demo 解析源码 [java] view plain copy print? package com. 阅读全文

posted @ 2017-07-05 17:13 alex5211314 阅读(144) 评论(0) 推荐(0) 编辑

JDK 源码解析 —— ArrayBlockingQueue

摘要: 零. 简介 ArrayBlockingQueue 是一个由数组作为基础数据结构的有界阻塞队列。出队入队使用先进先出算法,即 FIFO (first in first out)。head 是停留在队列中最长的节点,tail 停留在队列中最短的节点。从 head 出队列,从 tail 入队列。 这是一个 阅读全文

posted @ 2017-07-05 17:10 alex5211314 阅读(145) 评论(0) 推荐(0) 编辑

JDK 源码解析 —— Integer

摘要: 零. 简介 对于 Integer 这个 Java 程序员几乎天天使用的类, 使用上却可以看出普通程序员和优秀程序员区别。 一. 深入代码 在创建数字 1 的对象时, 大多数人会使用 new Integer(1), 而使用 Integer.valueOf(1) 可以使用系统缓存,既减少可能的内存占用, 阅读全文

posted @ 2017-07-05 17:06 alex5211314 阅读(138) 评论(0) 推荐(0) 编辑

JDK 源码解析 —— ConcurrentHashMap

摘要: 零. 概述 ConcurrentHashMap 是将锁的范围细化来实现高效并发的。 基本策略是将数据结构分为一个一个 Segment(每一个都是一个并发可读的 hash table, 即分段锁)作为一个并发单元。 为了减少开销, 除了一处 Segment 是在构造器初始化的, 其他都延迟初始化(详见 阅读全文

posted @ 2017-07-05 17:04 alex5211314 阅读(92) 评论(0) 推荐(0) 编辑

JDK 源码解析 —— AtomicInteger

摘要: 零. 前言 JDK 里面提供的以 Atomic* 开头的类基本原理都是一致的, 都是借助了底层硬件级别的 Lock 来实现原子操作的。 本文以 AtomicInteger 为例进行讲述, 其他的类似。阅读本文前建议先阅读基础篇:Java 内存模型 一. 处理器原子操作: 3种加锁方式 关于 CPU 阅读全文

posted @ 2017-07-05 16:45 alex5211314 阅读(129) 评论(0) 推荐(0) 编辑

JDK 源码解析 —— Java 内存模型

摘要: 零. 为什么需要 Java 内存模型 为了让程序员忽略掉各种硬件和操作系统的内存访问差异, 也既无需关心不同架构上内存模型的差异, Java 在代码和硬件内存模型间又提供了一个 Java 内存模型。 一. 并发模型的分类 在并发编程中,需要处理两个关键问题:线程之间如何通信(线程之间以何种机制来交换 阅读全文

posted @ 2017-07-05 16:43 alex5211314 阅读(101) 评论(0) 推荐(0) 编辑

使用无限大小线程池 newCachedThreadPool 可能遇到的问题

摘要: 看一段测试代码: [java] view plain copy print? package com.wenniuwuren.concurrent; import java.util.concurrent.ExecutorService; import java.util.concurrent.Ex 阅读全文

posted @ 2017-07-05 16:36 alex5211314 阅读(1307) 评论(0) 推荐(0) 编辑

JDK 源码解析 —— ThreadLocal

摘要: 零. 简介 这个类提供本地线程变量。不同于一般的变量,这些变量在他们各自的线程里通过 get、set 访问一个它自己的变量,这是一个独立初始化的变量副本。在一个类中,ThreadLocal 实例一般是 private static 的,期望和一个线程关联状态(如 userId,transaction 阅读全文

posted @ 2017-07-05 10:55 alex5211314 阅读(172) 评论(0) 推荐(0) 编辑

2017年6月30日

MySQL导入数据非常慢的解决办法

摘要: MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅45万条记录,竟用了近3个小时。在导出时合理使用几个参数,可以大大加快导入的速度。 -e 使用包括几个VALUES列表的多行INSERT语法; --max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小 阅读全文

posted @ 2017-06-30 11:57 alex5211314 阅读(4175) 评论(0) 推荐(0) 编辑

JAVA程序员必看的15本书

摘要: 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。一、Java编程入门类 对于没有Java编程经验的程序员要入门,随便读什么入门 阅读全文

posted @ 2017-06-30 09:08 alex5211314 阅读(110) 评论(0) 推荐(0) 编辑

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 38 下一页

导航