自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 拾遗增补

本章应该掌握如下知识点:线程组的使用如何切换线程状态SimpleDateFormat类与多线程的解决办法如何处理线程的异常线程的状态线程对象在不同的运行时期有不同的状态,状态信息存在于State枚举类中.验证NEW、RUNNABLE和TERMINATEDNEW状态是线程实例化后还从未执行start()方法时的状态,RUNNABLE状态是线程进入运行的状态

2017-08-31 22:46:37 215

原创 单例模式与多线程

立即加载/"饿汉模式"什么是立即加载立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化,在调用方法前实例已经被创建了.利用getInstance()获得一个对象.延迟加载/"懒汉模式"什么是延迟加载延迟加载就是在调用get()方法时实例才被创建,常见的实现办法就是在get()方法中进行new实例化,在调用方法时实例才被

2017-08-31 18:55:51 212

原创 Lock的使用

掌握如下关键知识点:ReentrantLock类的使用ReentrantReadWriteLock类的使用使用ReentrantLock类在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JDK1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如嗅探锁定、多路分支通知等功能,并且在使用上也比

2017-08-31 18:35:45 281

原创 定时器Timer

掌握如下技术点:如何实现指定时间执行任务如何实现按指定周期执行任务定时器Timer的使用Timer类的主要作用就是设置计划任务(在指定的时间开始执行某一个任务),但封装任务的类却是TimerTask类执行计划任务的代码要放入TimerTask的子类中,因为TimerTask是一个抽象类方法schedule(TimerTask task,Date time)的测试

2017-08-23 23:39:30 256

原创 对象及变量的并发访问

掌握如下关键技术点:synchronized对象监视器为Object时的使用synchronized对象监视器为Class时的使用非线程安全是如何出现的关键字volatile的主要作用关键字volatile与synchronized的区别及使用情况synchronized同步方法方法内的变量为线程安全"非线程安全"问题存在于"实例变量"中,如果是方法

2017-08-23 23:38:13 168

原创 线程间通信

掌握如下关键技术点:使用wait/notify实现线程间的通信生产者/消费者模式的实现方法join的使用ThreadLocal类的使用等待/通知机制不使用等待/通知机制实现线程间通信线程与线程之间不是独立的个体,它们彼此之间可以相互通信和协作使用sleep()结合while(true)死循环来实现多个线程间通信弊端:不停地通过whil

2017-08-23 23:36:54 168

原创 Lock的使用

掌握如下关键知识点:ReentrantLock类的使用ReentrantReadWriteLock类的使用使用ReentrantLock类在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JDK1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如嗅探锁定、多路分支通知等功能,并且在使用上也比

2017-08-23 23:35:05 218

原创 使用JDK自带的工具来检测是否有死锁的现象

使用JDK自带的工具来检测是否有死锁的现象

2017-08-13 17:40:19 1059

转载 Intellij Idea调试功能总结

本博客网址:http://my.csdn.net/Idiot_xue,转载本博客原创文章请注明出处。

2017-08-09 21:15:51 223

原创 Java多线程技能

进程和多线程的概念及线程的优点进程:进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上运行的过程,她是系统进行资源分配和调度的一个独立单位.线程:在进程中独立运行的子任务线程的优点:可以最大限度的利用CPU的空闲时间来处理其他任务,系统的运行效率大大提高原理:CPU在任务之间不停切换,由于切换的速度非常快,给使用者

2017-08-09 11:59:35 202

转载 代码中特殊的注释技术——TODO、FIXME和XXX的用处

前言:今天在阅读Qt Creator的源代码时,发现一些注释中有FIXME英文单词,用英文词典居然查不到其意义!实际上,在阅读一些开源代码时,我们常会碰到诸如:TODO、FIXME和XXX的单词,它们是有其特殊含义的。、TODO: + 说明:如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。FIXME: + 说明:如果代码中有该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。XXX: + 说明:如果代码中

2017-08-09 11:45:35 273

google-json-2.8.0

读取JSON文件需要使用的包 版本:google-json-2.8.0 包含gson-2.8.0.jar,gson-2.8.0-javadoc.jar,gson-2.8.0-sources.jar三个文件

2017-09-24

日历控件(农历公历选择)

日历控件,公历农历选择

2017-09-09

《Java多线程编程核心技术》PDF版及源码

《Java多线程编程核心技术》PDF版及其书中源代码 内容简介 · · · · · · 资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著 结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等最难突破的核心技术与应用实践 Java多线程无处不在,如服务器、数据库、应用。多线程可以有效提升计算和处理效率,大大提升吞吐量和可伸缩性,深得广大程序员和公司的青睐。很多人学习完JavaSE/JavaEE之后想往更深入的技术进行探索,比如对大数据、分布式、高并发类的专题进行攻克时,立即遇到针对java.lang包中线程类的学习,但线程类的学习并不像JDBC一样简单,学习曲线陡峭,多弯路与“坑”。要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。 本书有以下特点: 不留遗漏——全面覆盖Java语言多线程知识点; 直击要害——实战化案例精准定位技术细节; 学以至用——精要式演示确保开发/学习不脱节; 潜移默化——研磨式知识讲解参透技术要点; 提升效率——垂直式技术精解不绕弯路; 循序提升——渐进式知识点统排确保连贯。 作者简介 · · · · · · 高洪岩 某世界500强企业高级项目经理,10余年项目管理与开发经验,10年Java相关开发经验,深谙Java技术开发难点与要点,拥有良好的技术素养和丰富的实践经验。精通J2EE核心技术、基于EJB的分布式系统开发、Android移动开发、智能报表、多线程及高并发等相关的技术内容,近期持续关注并发相关的前沿技术。喜欢技术与教育相结合的方式共享知识,以共同提高。生活中喜欢摄影, 对轮滑,旅游,航模亦兴趣浓厚。 目录 · · · · · · 前 言 第1章 Java多线程技能, 1.1 进程和多线程的概念及线程的优点 1.2 使用多线程 1.2.1 继承Thread类 1.2.2 实现Runnable接口 1.2.3 实例变量与线程安全 1.2.4 留意i——与System.out.println()的异常 1.3 currentThread()方法 1.4 isAlive()方法 1.5 sleep()方法 1.6 getId()方法 1.7 停止线程 1.7.1 停止不了的线程 1.7.2 判断线程是否是停止状态 1.7.3 能停止的线程——异常法 1.7.4 在沉睡中停止 1.7.5 能停止的线程——暴力停止 1.7.6 方法stop()与java.lang.ThreadDeath异常 1.7.7 释放锁的不良后果 1.7.8 使用return停止线程 1.8 暂停线程 1.8.1 suspend与resume方法的使用 1.8.2 suspend与resume方法的缺点——独占 1.8.3 suspend与resume方法的缺点——不同步 1.9 yield方法 1.10 线程的优先级 1.10.1 线程优先级的继承特性 1.10.2 优先级具有规则性 1.10.3 优先级具有随机性 1.10.4 看谁运行得快 1.11 守护线程 1.12 本章小结 第2章 对象及变量的并发访问 2.1 synchronized同步方法 2.1.1 方法内的变量为线程安全 2.1.2 实例变量非线程安全 2.1.3 多个对象多个锁 2.1.4 synchronized方法与锁对象 2.1.5 脏读 2.1.6 synchronized锁重入 2.1.7 出现异常,锁自动释放 2.1.8 同步不具有继承性 2.2 synchronized同步语句块 2.2.1 synchronized方法的弊端 2.2.2 synchronized同步代码块的使用 2.2.3 用同步代码块解决同步方法的弊端 2.2.4 一半异步,一半同步 2.2.5 synchronized代码块间的同步性 2.2.6 验证同步synchronized(this)代码块是锁定当前对象的 2.2.7 将任意对象作为对象监视器 2.2.8 细化验证3个结论 2.2.9 静态同步synchronized方法与synchronized(class)代码块 2.2.10 数据类型String的常量池特性 2.2.11 同步synchronized方法无限等待与解决 2.2.12 多线程的死锁 2.2.13 内置类与静态内置类 2.2.14 内置类与同步:实验1 2.2.15 内置类与同步:实验2 2.2.16 锁对象的改变 2.3 volatile关键字 2.3.1 关键字volatile与死循环 2.3.2 解决同步死循环 2.3.3 解决异步死循环 2.3.4 volatile非原子的特性 2.3.5 使用原子类进行i++操作 2.3.6 原子类也并不完全安全 2.3.7 synchronized代码块有volatile同步的功能 2.4 本章总结 第3章 线程间通信 3.1 等待/通知机制 3.1.1 不使用等待/通知机制实现线程间通信 3.1.2 什么是等待/通知机制 3.1.3 等待/通知机制的实现 3.1.4 方法wait()锁释放与notify()锁不释放 3.1.5 当interrupt方法遇到wait方法 3.1.6 只通知一个线程 3.1.7 唤醒所有线程 3.1.8 方法wait(long)的使用 3.1.9 通知过早 3.1.10 等待wait的条件发生变化 3.1.11 生产者/消费者模式实现 3.1.12 通过管道进行线程间通信:字节流 3.1.13 通过管道进行线程间通信:字符流 3.1.14 实战:等待/通知之交叉备份 3.2 方法join的使用 3.2.1 学习方法join前的铺垫 3.2.2 用join()方法来解决 3.2.3 方法join与异常 3.2.4 方法join(long)的使用 3.2.5 方法join(long)与sleep(long)的区别 3.2.6 方法join()后面的代码提前运行:出现意外 3.2.7 方法join()后面的代码提前运行:解释意外 3.3 类ThreadLocal的使用 3.3.1 方法get()与null 3.3.2 验证线程变量的隔离性 3.3.3 解决get()返回null问题 3.3.4 再次验证线程变量的隔离性 3.4 类InheritableThreadLocal的使用 3.4.1 值继承 3.4.2 值继承再修改 3.5 本章总结 第4章 Lock的使用 4.1 使用ReentrantLock类 4.1.1 使用ReentrantLock实现同步:测试1 4.1.2 使用ReentrantLock实现同步:测试2 4.1.3 使用Condition实现等待/通知错误用法与解决 4.1.4 正确使用Condition实现等待/通知 4.1.5 使用多个Condition实现通知部分线程:错误用法 4.1.6 使用多个Condition实现通知部分线程:正确用法 4.1.7 实现生产者/消费者模式:一对一交替打印 4.1.8 实现生产者/消费者模式:多对多交替打印 4.1.9 公平锁与非公平锁 4.1.10 方法getHoldCount()、getQueueLength()和getWaitQueueLength()的测试 4.1.11 方法hasQueuedThread()、hasQueuedThreads()和hasWaiters()的测试 4.1.12 方法isFair()、isHeldByCurrentThread()和isLocked()的测试 4.1.13 方法lockInterruptibly()、tryLock()和tryLock(long timeout,TimeUnit unit)的测试 4.1.14 方法awaitUninterruptibly()的使用 4.1.15 方法awaitUntil()的使用 4.1.16 使用Condition实现顺序执行 4.2 使用ReentrantReadWriteLock类 4.2.1 类ReentrantReadWriteLock的使用:读读共享 4.2.2 类ReentrantReadWriteLock的使用:写写互斥 4.2.3 类ReentrantReadWriteLock的使用:读写互斥 4.2.4 类ReentrantReadWriteLock的使用:写读互斥 4.3 本章总结 第5章 定时器Timer 5.1 定时器Timer的使用 5.1.1 方法schedule(TimerTask task, Date time)的测试 5.1.2 方法schedule(TimerTask task, Date firstTime, long period)的测试 5.1.3 方法schedule(TimerTask task, long delay)的测试 5.1.4 方法schedule(TimerTask task, long delay, long period)的测试 5.1.5 方法scheduleAtFixedRate(TimerTask task, Date firstTime, long period)的测试 5.2 本章总结 第6章 单例模式与多线程 6.1 立即加载/"饿汉模式" 6.2 延迟加载/"懒汉模式" 6.3 使用静态内置类实现单例模式 6.4 序列化与反序列化的单例模式实现 6.5 使用static代码块实现单例模式 6.6 使用enum枚举数据类型实现单例模式 6.7 完善使用enum枚举实现单例模式 6.8 本章总结 第7章 拾遗增补 7.1 线程的状态 7.1.1 验证NEW、RUNNABLE和TERMINATED 7.1.2 验证TIMED_WAITING 7.1.3 验证BLOCKED 7.1.4 验证WAITING 7.2 线程组 7.2.1 线程对象关联线程组:1级关联 7.2.2 线程对象关联线程组:多级关联 7.2.3 线程组自动归属特性 7.2.4 获取根线程组 7.2.5 线程组里加线程组 7.2.6 组内的线程批量停止 7.2.7 递归与非递归取得组内对象 7.3 使线程具有有序性 7.4 SimpleDateFormat非线程安全 7.4.1 出现异常 7.4.2 解决异常方法1 7.4.3 解决异常方法2 7.5 线程中出现异常的处理 7.6 线程组内处理异常 7.7 线程异常处理的传递 7.8 本章总结

2017-08-31

空空如也

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

TA关注的人

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