- 博客(184)
- 资源 (9)
- 收藏
- 关注
转载 Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例 (r)
概要本章,我们对JUC包中的信号量Semaphore进行学习。内容包括:Semaphore简介Semaphore数据结构Semaphore源码分析(基于JDK1.7.0_40)Semaphore示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3534050.html Semaphore简介Sem
2016-08-28 16:27:49 912
转载 Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例 (r)
概要本章介绍JUC包中的CyclicBarrier锁。内容包括:CyclicBarrier简介CyclicBarrier数据结构CyclicBarrier源码分析(基于JDK1.7.0_40)CyclicBarrier示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3533995.html Cyclic
2016-08-28 16:27:19 518
转载 Java多线程系列--“JUC锁”09之 CountDownLatch原理和示例 (r)
概要前面对"独占锁"和"共享锁"有了个大致的了解;本章,我们对CountDownLatch进行学习。和ReadWriteLock.ReadLock一样,CountDownLatch的本质也是一个"共享锁"。本章的内容包括:CountDownLatch简介CountDownLatch数据结构CountDownLatch源码分析(基于JDK1.7.0_40)CountDownL
2016-08-28 16:26:33 666
转载 Java多线程系列--“JUC锁”08之 共享锁和ReentrantReadWriteLock
概要Java的JUC(java.util.concurrent)包中的锁包括"独占锁"和"共享锁"。在“Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock ”中,对Java的独占锁进行了说明。本章对Java的“共享锁”进行介绍,JUC中的共享锁有CountDownLatch, CyclicBarrier, Semaphore, ReentrantReadWrit
2016-08-28 16:25:33 3176
转载 Java多线程系列--“JUC锁”07之 LockSupport (r)
概述本章介绍JUC(java.util.concurrent)包中的LockSupport。内容包括:LockSupport介绍LockSupport函数列表LockSupport参考代码(基于JDK1.7.0_40)LockSupport示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3505784.html
2016-08-28 16:24:58 368
转载 Java多线程系列--“JUC锁”06之 Condition条件 (r)
概要前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition介绍Condition函数列表Condition示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3496716.html Condition介绍Condition的作用是对
2016-08-28 16:24:15 282
转载 Java多线程系列--“JUC锁”05之 非公平锁 (r)
概要前面两章分析了"公平锁的获取和释放机制",这一章开始对“非公平锁”的获取锁/释放锁的过程进行分析。内容包括:参考代码获取非公平锁(基于JDK1.7.0_40)释放非公平锁(基于JDK1.7.0_40)关于锁的数据结构请参考"Java多线程系列--“JUC锁”03之 公平锁(一) ",锁的使用示例请参考“Java多线程系列--“JUC锁”02之 互斥锁ReentrantL
2016-08-28 16:23:43 6834
转载 Java多线程系列--“JUC锁”04之 公平锁(二) (r)
概要前面一章,我们学习了“公平锁”获取锁的详细流程;这里,我们再来看看“公平锁”释放锁的过程。内容包括:参考代码释放公平锁(基于JDK1.7.0_40)“公平锁”的获取过程请参考“Java多线程系列--“JUC锁”03之 公平锁(一)”,锁的使用示例请参考“Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock”。注意:(01) 这里是以
2016-08-28 16:21:03 5037
转载 Java多线程系列--“JUC线程池”06之 Callable和Future
概要本章介绍线程池中的Callable和Future。Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544116.html Callable 和 Future 简介 Callable 和 Future 是比较有趣的一对
2016-08-28 16:19:33 334
转载 Java多线程系列--“JUC线程池”05之 线程池原理(四)
概要本章介绍线程池的拒绝策略。内容包括:拒绝策略介绍拒绝策略对比和示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3512947.html 拒绝策略介绍线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭。第二,任务数
2016-08-28 16:11:14 303
转载 Java多线程系列--“JUC线程池”04之 线程池原理(三)
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509960.html 本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:Running, SHUTDOWN, S
2016-08-28 16:01:43 300
转载 Java线程池架构原理和源码解析(ThreadPoolExecutor)
Java线程池架构原理和源码解析(ThreadPoolExecutor)在前面介绍JUC的文章中,提到了关于线程池Execotors的创建介绍,在文章:《java之JUC系列-外部Tools》中第一部分有详细的说明,请参阅;文章中其实说明了外部的使用方式,但是没有说内部是如何实现的,为了加深对实现的理解,在使用中可以放心,我们这里将做源码解析以及反馈到原理上,Executors
2016-08-27 23:06:12 461
转载 Java多线程系列--“JUC线程池”03之 线程池原理(二)
概要在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。内容包括:线程池示例参考代码(基于JDK1.7.0_40)线程池源码分析 (一) 创建“线程池” (二) 添加任务到“线程池” (三) 关闭“线程池”转载请注明出处:http://www.c
2016-08-27 14:40:39 1035
转载 Java多线程系列--“基础篇”11之 生产消费者问题 (r)
概要本章,会对“生产/消费者问题”进行讨论。涉及到的内容包括:1. 生产/消费者模型2. 生产/消费者实现转载请注明出处:http://www.cnblogs.com/skywang12345/p/3480016.html 1. 生产/消费者模型生产/消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。他们
2016-08-26 23:47:20 288
转载 Java多线程系列--“基础篇”10之 线程优先级和守护线程 (r)
概要本章,会对守护线程和线程优先级进行介绍。涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479982.html 1. 线程优先级的介绍java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先
2016-08-26 23:45:31 248
转载 Java多线程系列--“基础篇”09之 interrupt()和线程终止方式 (r)
概要本章,会对线程的interrupt()中断和终止方式进行介绍。涉及到的内容包括:1. interrupt()说明2. 终止线程的方式 2.1 终止处于“阻塞状态”的线程 2.2 终止处于“运行状态”的线程3. 终止线程的示例4. interrupted() 和 isInterrupted()的区别转载请注明出处:http://www.cnblogs.
2016-08-26 23:42:54 303
转载 Java多线程系列--“基础篇”08之 join() (r)
概要本章,会对Thread中join()方法进行介绍。涉及到的内容包括:1. join()介绍2. join()源码分析(基于JDK1.7.0_40)3. join()示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479275.html 1. join()介绍join() 定义在Thread.j
2016-08-26 23:38:13 254
转载 Java多线程系列--“基础篇”06之 线程让步 (r)
概要本章,会对Thread中的线程让步方法yield()进行介绍。涉及到的内容包括:1. yield()介绍2. yield()示例3. yield() 与 wait()的比较转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479243.html 1. yield()介绍yield()的作用是让步。它
2016-08-26 23:35:56 325
转载 Java多线程系列--“基础篇”07之 线程休眠 (r)
概要本章,会对Thread中sleep()方法进行介绍。涉及到的内容包括:1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479256.html 1. sleep()介绍sleep() 定义在Thread.ja
2016-08-26 23:33:43 259
转载 Java多线程系列--“基础篇”05之 线程等待与唤醒 (r)
概要本章,会对线程等待/唤醒方法进行介绍。涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long timeout)和notify()4. wait() 和 notifyAll()5. 为什么notify(), wait()等函数定义在Object中,而不是Thread中
2016-08-26 23:32:24 307
转载 Java多线程系列--“基础篇”04之 synchronized关键字 (r)
概要本章,会对synchronized关键字进行介绍。涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchronized代码块4. 实例锁 和 全局锁转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479202.html
2016-08-26 23:24:42 229
转载 Java多线程系列--“基础篇”03之 Thread中start()和run()的区别 (r)
概要Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答。本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start() 和 run()相关源码(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479083.html
2016-08-26 23:23:33 367
转载 Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式(r)
概要本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable。之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程。关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和Runnable进行了解。本章内容包括:Thread和Runnable的简介Thread和Runnable的异同点Thre
2016-08-26 23:20:23 231
转载 Java多线程系列--“基础篇”01之 基本概念 (r)
多线程是Java中不可避免的一个重要主体。从本章开始,我们将展开对多线程的学习。接下来的内容,是对“JDK中新增JUC包”之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), notify()等接口;Thread类中的接口;synchronized关键字。注:JUC包是指,Java.util.concurrent包,它是由Java大师Doug Lea完成并在J
2016-08-26 23:16:21 280
转载 Java多线程系列--“JUC锁”03之 公平锁(一) (r)
概要本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40) 一. tryAcquire() 二. addWaiter() 三. acquireQueued() 四. selfInterrupt()“公平锁”的释放锁的机制在后面一章再
2016-08-26 23:11:49 3828
转载 Java多线程系列--“JUC线程池”02之 线程池原理(一)
概要在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构。线程池的实现类是ThreadPoolExecutor类。本章,我们通过分析ThreadPoolExecutor类,来了解线程池的原理。内容包括:ThreadPoolExecutor简介ThreadPoolExecutor数据结构线程池调度转载请注明出处:http://ww
2016-08-26 23:10:49 220
转载 Java多线程系列--“JUC线程池”01之 线程池架构
概要前面分别介绍了"Java多线程基础"、"JUC原子类"和"JUC锁"。本章介绍JUC的最后一部分的内容——线程池。内容包括:线程池架构图线程池示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509903.html 线程池架构图线程池的架构图如下: 1. Execu
2016-08-26 23:00:14 267
转载 Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock (r)
本章对ReentrantLock包进行基本介绍,这一章主要对ReentrantLock进行概括性的介绍,内容包括:ReentrantLock介绍ReentrantLock函数列表ReentrantLock示例在后面的两章,会分别介绍ReentrantLock的两个子类(公平锁和非公平锁)的实现原理。转载请注明出处:http://www.cnblogs.com/skywang12
2016-08-26 22:55:23 232
转载 Java多线程系列--“JUC锁”01之 框架 (r)
本章,我们介绍锁的架构;后面的章节将会对它们逐个进行分析介绍。目录如下:01. Java多线程系列--“JUC锁”01之 框架02. Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock03. Java多线程系列--“JUC锁”03之 公平锁(一) 04. Java多线程系列--“JUC锁”04之 公平锁(二) 05. Java多线程系列--“JUC锁”0
2016-08-26 22:45:55 429
转载 Java虚拟机学习 - 类加载器(ClassLoader)
类加载器类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 Java 字节码文件(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每一个这样的实例用来表示一个 Java 类。实际的情
2016-08-25 21:33:14 362
转载 Java虚拟机学习 - 内存调优
JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间、 减少Full GC次数。代大小调优最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold、-XX:PermSize、-
2016-08-25 21:32:49 190
转载 Java虚拟机学习 - 对象引用强度
无论是通过计数算法判断对象的引用数量,还是通过根搜索算法判断对象引用链是否可达,判定对象是否存活都与“引用”相关。引用主要分为 :强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(PhantomReference) 四种,引用的强度依次骤减。强引用:就是指在代码之中普遍存在的,
2016-08-25 21:30:50 232
转载 Java虚拟机学习 - JDK可视化监控工具
1.JConsole JConsole工具在JDK/bin目录下,启动JConsole后,将自动搜索本机运行的jvm进程,不需要jps命令来查询指定。双击其中一个jvm进程即可开始监控,也可使用“远程进程”来连接远程服务器。进入JConsole主界面,有“概述”、“内存”、“线程”、“类”、“VM摘要”和"Mbean"六个页签:
2016-08-25 21:30:05 269
转载 Java虚拟机学习 - 查看JVM参数及值的命令行工具
查看JVM各个参数值方式1. HotSpot vm中的各个globals.hpp文件 查看jvm初始的默认值及参数globals.hpp globals_extension.hpp c1_globals.hpp c1_globals_linux.hpp c1_globals_solaris.hpp c1_globals_sparc.hpp
2016-08-25 21:29:20 2357
转载 Java虚拟机学习 - 类加载机制
类加载机制JVM把class文件加载的内存,并对数据进行校验、转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Usi
2016-08-25 21:28:27 277
转载 Java虚拟机学习 - 对象内存分配与回收
对象优先在Eden上分配大多数情况下,对象优先在新生代Eden区域中分配。当Eden内存区域没有足够的空间进行分配时,虚拟机将触发一次 Minor GC(新生代GC)。Minor GC期间虚拟机将Eden区域的对象移动到其中一块Survivor区域。大对象直接进入老年代所谓大对象是指需要大量连续空间的对象。虚拟机提供了一个XX:P
2016-08-25 21:27:44 192
转载 Java虚拟机学习 - 垃圾收集器
HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。Serial(串行GC)收集器Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模式下默认的新生代收
2016-08-25 21:27:07 246
转载 Java虚拟机学习 - 垃圾收集算法
跟踪收集器跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC Roots 没有任何引用链时,则证明此对象是不可用的。下图中,对象Object6、Object7、Object8虽然互相引用,但他们的GC Roots是不可到达的,所以它们将会被判定为是可回收的对象。
2016-08-25 21:25:49 187
转载 Java虚拟机学习 - 对象访问
对象访问会涉及到Java栈、Java堆、方法区这三个内存区域。如下面这句代码:[java] view plain copy print?Object objectRef = new Object(); 假设这句代码出现在方法体中,"Object objectRef” 这部分将会反映到Java栈的本地变量中,作为一个
2016-08-25 21:25:16 238
转载 Java虚拟机学习 - 体系结构 内存模型
一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。
2016-08-25 21:24:41 219
java基础,java高级,java进阶 part1(1-2)
2017-09-05
java基础1111
2017-09-05
java基础,java高级 part2(2-2)
2017-09-05
java 总结 web mysql
2017-09-05
wireshark解析h.264的nal类型的lua(基于rtp协议)
2014-09-28
GCC编译器,LINUX下的编译器
2012-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人