自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

少年时未觉悟 ,觉悟时不再年少,还危机四伏!

We make choices in life and we choose to live with them.

  • 博客(19)
  • 资源 (25)
  • 论坛 (6)
  • 问答 (9)
  • 收藏
  • 关注

原创 Java 并发编程技术实践之路专栏导读

背景拟准备重新整理一下 Java 并发编程相关的技术知识,系统并完善地介绍自己阅读 Java 并发包源码的心得,并结合工作中碰到的有关并发的问题,写一个关于 Java 并发编程的专栏系列。此篇为开题导读,让我们来回顾一下 Java 并发相关的知识图谱。...

2019-12-19 22:57:18 281 3

原创 实践篇:如何编写线程安全的类

文章目录引言线程安全的几种实现设计不变的类引言并发环境下设计线程安全的类,一个类如果是不变的,那么它一定就是线程安全的。这是设计模式中不变模式的一种,一个对象在创建之后,它的状态就不会再发生变化,它就是不变类。java中的String,各种基本类型的封装类型,都是不变类。在设计任何一个类的时候,应当慎重考虑其状态是否有需要变化的可能性。如果其状态没有变化的必要,那么就应当将它设计成不变类。线...

2019-12-31 12:15:41 213

原创 干货篇:论线程池资源关闭的重要性

引言本文是根据笔者去年写的一篇付费文章整理而来的,主要介绍 Java Web 应用中线程池资关闭的重要性。背景是这样的,笔者去年参与了一个小项目的开发,部署测试环境时得知客户要求使用 jboss 企业版作为 web服务器。笔者之前参与的所有项目都是基于Tomcat 的,测试时直接重启Tomcat,没遭遇过JVM 内存泄露问题。本文将以本人在 jboss 服务器下部署测试的工作经历,聊聊 Ja...

2019-12-26 18:38:01 271

原创 并发案例:如何保证统计变量的原子性

文章目录引言i++ 数据不一致案例分析案例描述问题分析解决办法AtomicInteger 原子类概述案例描述问题分析延伸测试启示录引言i++ 这个简单的语句,想必大家都不陌生,但是在多线程环境下,如果 i 是一个全局共享变量,那么它还能正确地按顺序累加吗?这就是本文要介绍的内容,如何保证统计变量的原子性。其实,i++ 是由 “读取-修改-写入” 三个操作序列组成的复合操作,应该保证它们的原子...

2019-12-25 12:21:38 183

原创 并发案例:CyclicBarrier 使用不当导致死锁问题分析

文章目录引言功能分析单线程调度死锁问题复盘打破死锁的方法编程启示录引言前文讲述了 CyclicBarrier 和 CountDownLatch 的基本用法,本文笔者将给大家复盘一个 CyclicBarrier 使用不当导致线程饥饿死锁的踩坑经历。今年年初的时候,笔者写过一个简单的应用,对不同 Linux 系统的防火墙文件进行解析,将 NAT 转换信息解析后存入数据库。本来每个文件都不大,单...

2019-12-24 20:34:22 349

原创 基础篇: CyclicBarrier 和 CountDownLatch 概述

文章目录背景Java 并发知识思维导图CyclicBarrier 基本用法构造方法实践编码测试类结果分析CountDownLatch 用法概述使用案例编程启示录背景电脑桌面上有一张“Java 并发编程知识思维导图”,最近刚好又用到了 CyclicBarrier 类,这是一篇笔者周末总结的 CyclicBarrier 用法的旧文,今天再对此文修正调整后正好作为专栏的一部分。Java 并发知识思...

2019-12-24 20:20:46 154

原创 死锁篇:线程饥饿死锁问题

文章目录引言线程饥饿死锁资源死锁Timer 定时器死锁分析引言线程饥饿死锁《Java并发编程实践》中对线程饥饿死锁的解释是这样的:在使用线程池执行任务时,如果任务依赖于其他任务,那么就可能产生死锁问题。在单线程的Executor中,若果一个任务将另一个任务提交到同一个Executor,并且等待这个被提交的任务的结果,那么这必定会导致死锁。第一个任务在工作队列中,并等待第二个任务的结果;而第二...

2019-12-24 19:11:19 327

原创 死锁篇:协作对象死锁问题

协作对象间的死锁问题在协作对象之间可能存在多个锁获取的情况,但是这些获取多个锁的操作并不像在LeftRightDeadLock或transferMoney中那么明显,这两个锁并不一定必须在同一个方法中被获取。如果在持有锁时调用某个外部方法,那么这就需要警惕死锁问题,因为在这个外部方法中可能会获取其他锁,或者阻塞时间过长,导致其他线程无法及时获取当前被持有的锁。《java并发编程实践》中出租车调...

2019-12-23 18:19:33 270

原创 死锁篇:锁顺序死锁问题

文章目录引言什么是锁顺序死锁动态的锁顺序死锁实践启示录引言初次接触死锁的概念是大学的一门课程《操作系统原理》中描述的“哲学家进餐”问题。操作系统中,由于各个进程共享系统资源而可能出现死锁问题。同样 Java 多线程环境下,也存在资源共享导致的死锁问题。当一组Java 线程发生死锁时,程序有可能就此阻塞,而无法正常结束。Java 应用程序中,我们使用加锁机制来确保线程的安全,但是如果过度地使用加锁,可能...

2019-12-23 11:30:03 311

原创 源码篇:ThreadPoolExecutor 任务饱和策略验证

文章目录引言策略一:通知模式抛弃策略二:静音模式抛弃策略三:限制提交策略四:调用者执行引言使用java的任务管理框架的线程池执行任务时,线程池的任务等待队列被填满时,饱和策略开始发挥作用。ThreadPollExecutor的饱和策略通过setRejectedExecutionHandler来修改。JDK提供了4中饱和策略如下:策略一:通知模式抛弃AbortPolicy是默认的饱和策略,...

2019-12-22 19:20:19 236

原创 源码篇:ThreadPoolExecutor 源码阅读笔记

文章目录引言线程扩容机制线程池提交任务的流程任务饱和策略引言java并发包中的任务调度框架Executor的实现类ThreadPoolExecutor的源码阅读。线程扩容机制ThreadPoolExecutor提供了某些Executor的基本实现,是一个灵活的、稳定的、支持定制的线程池。首先,类结构图如下:线程池维护着三个容量变量poolSize、corePoolSize、maxPoo...

2019-12-22 11:54:03 141

原创 源码篇:ReentrantLock 源码分析下篇

文章目录引言lock 和 lockInterruptibly 的区别lock 源码lockInterruptibly 源码条件队列条件队列的节点状态等待和唤醒操作引言上一节介绍了 ReentrantLock 类的 lock 锁获取流程,本节主要介绍两个知识点:lock 和 lockInterruptibly的区别条件队列的实现逻辑lock 和 lockInterruptibly 的区...

2019-12-21 17:30:49 149

原创 源码篇:ReentrantLock 源码分析上篇

文章目录引言类图结构公平锁NonfairSync 锁引言AQS ,全称「 AbstratcQueuedSynchronizer 」,它是Java 的显式锁实现的基础框架,本质是一个队列结构,以先进先出的方式维护线程的阻塞和唤醒。JDK 源码中,AbstratcQueuedSynchronizer 类定义时的注释是这样写的:Provides a framework for implemen...

2019-12-21 12:20:19 141

原创 基础篇:独占锁、共享锁、公平锁、非公平锁,叫我如何分得清

背景本文继续讲解 Java 并发编程实践的基础篇,独占锁和共享锁,它跟上一篇的内置锁和显式锁的具体的实现策略。锁的独占与共享java并发包提供的加锁模式分为独占锁和共享锁,独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。共享锁,则允许多个线程同时获取锁,并发访问 共享资源,如:ReadWriteLock。AQS的内部类Node定义了两个常量SH...

2019-12-21 10:08:11 593

原创 基础篇:内置锁实现生产者和消费者模型

“生产者和消费者模型” 是多线程通信的典型案例,本章节将利用前一节的锁和条件队列的知识,来实现一个完整的有界缓冲区,并创建多个线程访问该有界缓冲区,模拟生产者提供数据、消费者处理数据的过程。

2019-12-20 19:19:53 303 1

原创 基础篇:内置锁和显式锁摸底

内置锁和显式锁是 Java 的两种不同加锁机制,在实际开发中是互斥的,只能选择一种方式,不能混用。笔者近几年在 CSDN 问答模块看到不少关于 synchronized 和 wait、notify 的提问,意识到这可能是初学者不太容易理明白的问题,所以本文来整理下二者的用法和注意事项。内置锁和显式锁内置锁和显式锁完成简单的同步代码逻辑,这里的简单是不使用条件队列的情况下,其实没什么特别注意的...

2019-12-20 09:40:23 402

原创 Vue 学习笔记: 组件通信方式汇总

背景Vue.js 在前端貌似很火的样子,虽然年初玩过 Angular.js ,同为前端框架,使用体验很类似,但是 Angular.js 的知识已经淡忘了,

2019-12-18 18:02:15 131

原创 Vue 学习笔记:$attrs 和 $listeners 的用法

学习 vueAdmin-template 项目时,看到两个属性 v-bind="$attrs" 和 v-on="$linteners",于是就这两个属性的用法作了一下深入的了解,通过一个简单的 demo 测试并理解了它们的用法和作用。我们知道,向子组件传递数据,是通过 v-bind 一个子类组件定义的 props 属性完成的,这只使用于单向两层组件引用之间。同样地,事件传递也是在父组件中用 v...

2019-12-07 18:37:37 951

原创 Vue 学习笔记:工具篇

背景github 上的一个vue 项目导入 IDEA 后,打开工程目录,发现各种标红的代码,但是工程能正确启动。本文记录去掉这些错误提示的过程,根源是 IDEA 环境配置不识别的问题,IDEA 识别的有问题的文件,它的颜色跟正常文件颜色都不一样,是红色的,普通文件名显示红色,js 直接用红色波浪线标红了。具体表现如下:1、Vue 文件中属性标签不识别在一个 div 中有一个事件配置,但是...

2019-12-07 10:37:00 155

Java实现的websocket的完整例子

Java实现的websocket的完整例子,可以了解websocket 的基本用法,也可以直接用于项目开发。

2019-04-07

Neo4jWeb应用代码

Neo4jWeb应用代码,使用图数据库Neo4j的简单应用。

2018-03-13

v8-1.0-SNAPSHOT.jar

OpenRASP-v8 jar 的 Java 包,可直接安装到本地,解决源码的依赖

2019-09-27

CuckooStudy.rar

Cuckoo Sandbox 研究需要的 Guest 端介质。

2021-01-04

ReentrantLock源码分析

近日,阅读jdk并发包源码分析整理笔记。

2014-12-26

highcharts插件使用学习文档

highcharts用法学习文档,参照官网摘录了主要使用方法编写的学习文档

2014-09-03

java 的Jms开源项目的源代码

java 的Jms开源项目的源代码,是一个值得研究的开源项目。

2010-07-20

状态栏显示时间的MFC程序

状态栏显示时间的MFC程序,在MFC中实现的在状态栏显示

2010-06-27

SWTSwingDesigner

这是一个压缩包文件,包含了Eclipse的控件的可视化工具,类似Delphi的控件包,可以拖而不必写大量的代码

2010-06-22

windows的多线程消息机制

ppt讲述了windows的多线程消息机制可以供初学MFC的编程爱好者们些许的参考

2010-06-22

JDBC连接数据库的视频过程

java 的JDBC连接SQL2005数据库的视频讲解,可以帮助学习java数据库知识的同学们一下。

2010-06-22

JDBC多层架构解析图

JDBC多层架构解析图,用图形可以清晰的描述出多层架构的表现。

2010-06-22

百度面试试题及其分析

百度面试试题及其分析,IT行业的经典面试试题及其讲习。

2010-06-22

slidecode_login.rar

一个完整的 Java Web 应用,实现了使用滑块验证码登录的逻辑,包括抠图逻辑和前台滑块验证的逻辑,可以直接使用。

2020-04-12

Node.js最新Linux版本

Nodejs的Linux下的解压版本,最新版本,为了解决下载难得问题,上传资源。

2019-02-14

IntelliJIDEA快捷键与Eclipse对比

IntelliJIDEA快捷键与Eclipse对比,让熟练运用Eclipse的同学能迅速找到IntelliJIDEA对应功能的快捷键。

2017-06-02

springMVC简单登陆例子

springMVC的一个简单例子。

2016-04-01

一个文件的读写例子

file io的简单实例

2016-03-30

strut2简单登录

strut2简单登录功能实现,作为学习Struts2的资源,共享。

2015-05-07

java web登录验证码

java web登录验证码实现,分享,共勉学习。

2015-05-07

SpringMVC学习demo

spring mvc的实例代码实现。简单的框架搭建,共享学习!

2015-04-24

strut2学习项目

struts2学习的demo源码,简单直观的。

2015-04-23

jpa学习总结,pdf类型的,详细介绍了jpa的应用

jpa学习总结,pdf类型的,详细介绍了jpa的应用,对了解jpa的入门有一定的指导作用的,本资源下载源于传智播客的视频课程。

2010-10-07

iBatis视频,详细介绍,及总结,这是传智播客里面的一个教学资源,详细介绍了ORM的可靠产品iBatis的基本操作过程

iBatis视频,详细介绍,及总结,这是传智播客里面的一个教学资源,详细介绍了ORM的可靠产品iBatis的基本操作过程

2010-10-07

个人事务管理系统c++

个人事务管理系统c++,用MFC开发的个人事务管理系统的小软件,可以供软件编程的学者开发练习。

2010-07-20

秋天送福利啦,赠送可用分!一起来学习Java 并发编程吧!

发表于 2020-09-26 最后回复 2020-09-26

521有福利,赠送可用分!一起来学习Java 并发编程吧

发表于 2020-05-21 最后回复 2020-08-19

新版博客能不能去掉“阅读全文”按钮呢?

发表于 2018-02-05 最后回复 2020-06-11

毕小宝的留言板

发表于 2020-01-02 最后回复 2020-02-10

JMS使用Weblogic访问远程队列中的消息异常

发表于 2011-05-25 最后回复 2011-05-25

Weblogic 远程连接队列是出现异常

发表于 2011-05-25 最后回复 2011-05-25

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

TA关注的人 TA的粉丝

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