<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[vAgile的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/viscent_huang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; viscent_huang]]></copyright><item><title><![CDATA[Java函数式编程学习笔记（一）]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/80717670</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/80717670</guid><author>viscent_huang</author><pubDate>Sun, 17 Jun 2018 11:46:30 +0800</pubDate><description><![CDATA[1. 此函数非彼函数在弄清楚什么是函数编程之前，有必要先弄清楚究竟什么是函数这个问题。在面向对象编程中，我们经常将方法称为函数，那么方法与函数究竟是否是同一个东西的不同称呼呢？函数式编程中的“函数”是指数学意义上的函数，不是编程语言中的“函数”。数学上的函数（Function）可以看成一个小机器，给这个机器提供一定的原材料（输入参数），它就会加工出（输出）一定的产品（返回值），如图1所示。图1 函...]]></description><category></category></item><item><title><![CDATA[Java函数式编程学习笔记（一）]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84922272</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84922272</guid><author>viscent_huang</author><pubDate>Sun, 17 Jun 2018 11:27:34 +0800</pubDate><description><![CDATA[
1. 此函数非彼函数
在弄清楚什么是函数编程之前，有必要先弄清楚究竟什么是函数这个问题。在面向对象编程中，我们经常将方法称为函数，那么方法与函数究竟是否是同一个东西的不同称呼呢？函数式编程中的“函数”是指数学意义上的函数，不是编程语言中的“函数”。数学上的函数（Function）可以看成一个小机器，给这个机器提供一定的原材料（输入参数），它就会加工出（输出）一定的产品（返回值），如图1所示。...]]></description><category></category></item><item><title><![CDATA[《Java多线程编程实战指南（核心篇）》答疑（陆续更新）]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84911463</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84911463</guid><author>viscent_huang</author><pubDate>Wed, 01 Nov 2017 21:40:26 +0800</pubDate><description><![CDATA[
问：
作者你好，看到可见性这一节，这里定义的toCancel变量是否应该是static类型的才有效果
 
答：
toCancel这个变量是要用volatile修饰才有能达到预期效果的，第2章里面我们并没有用voatile修饰是为了展示可见性问题。第3章会详细解释个中原因。
...]]></description><category></category></item><item><title><![CDATA[Java多线程编程那些事：volatile解惑]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/78299554</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/78299554</guid><author>viscent_huang</author><pubDate>Fri, 20 Oct 2017 21:12:14 +0800</pubDate><description><![CDATA[（本文最初由本人黄文海发表在InfoQ中文站上：http://www.infoq.com/cn）

1、 前言

volatile关键字可能是Java开发人员“熟悉而又陌生”的一个关键字。本文将从volatile关键字的作用、开销和典型应用场景以及Java虚拟机对volatile关键字的实现这几个方面为读者全面深入剖析volatile关键字。

volatile字面上有“挥发性的，不稳]]></description><category></category></item><item><title><![CDATA[Java多线程编程那些事：volatile解惑]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84910844</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84910844</guid><author>viscent_huang</author><pubDate>Fri, 20 Oct 2017 21:00:19 +0800</pubDate><description><![CDATA[
（本文最初由本人黄文海发表在InfoQ中文站上：http://www.infoq.com/cn）
1、 前言
volatile关键字可能是Java开发人员“熟悉而又陌生”的一个关键字。本文将从volatile关键字的作用、开销和典型应用场景以及Java虚拟机对volatile关键字的实现这几个方面为读者全面深入剖析volatile关键字。
volatile字面上有“挥发性的，不稳定的”意思...]]></description><category></category></item><item><title><![CDATA[Java多线程编程那些事：Java虚拟机对内部锁的优化]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84910153</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84910153</guid><author>viscent_huang</author><pubDate>Tue, 10 Oct 2017 21:20:02 +0800</pubDate><description><![CDATA[
自Java 6/Java 7开始，Java虚拟机对内部锁的实现进行了一些优化。这些优化主要包括锁消除（Lock Elision）、锁粗化（Lock Coarsening）、偏向锁（Biased Locking）以及适应性锁（Adaptive Locking）。这些优化仅在Java虚拟机server模式下起作用（即运行Java程序时我们可能需要在命令行中指定Java虚拟机参数“-server”以开...]]></description><category></category></item><item><title><![CDATA[Java多线程编程那些事：锁泄漏]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84909729</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84909729</guid><author>viscent_huang</author><pubDate>Thu, 28 Sep 2017 20:11:19 +0800</pubDate><description><![CDATA[
什么是锁泄漏
众所周知，我们对锁的使用方式都是用同一个套路——先申请锁，再执行临界区中的代码，最后释放锁，如清单1所示。尽管如此，代码的错误可能导致一个线程在其执行完临界区代码之后未能释放引导这个临界区的锁。例如，清单1中的doSomethingWithLock方法所调用的someIoOperation方法如果在其执行期间抛出了异常（这里是IOException），那么doSomethingW...]]></description><category></category></item><item><title><![CDATA[Java多线程编程那些事：锁泄漏]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/78122036</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/78122036</guid><author>viscent_huang</author><pubDate>Thu, 28 Sep 2017 11:47:15 +0800</pubDate><description><![CDATA[什么是锁泄漏

众所周知，我们对锁的使用方式都是用同一个套路——先申请锁，再执行临界区中的代码，最后释放锁，如清单1所示。尽管如此，代码的错误可能导致一个线程在其执行完临界区代码之后未能释放引导这个临界区的锁。例如，清单1中的doSomethingWithLock方法所调用的someIoOperation方法如果在其执行期间抛出了异常（这里是IOException），那么doSomething]]></description><category></category></item><item><title><![CDATA[【新闻】本人新书《Java多线程编程实战指南（核心篇）》已出版上市]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84895673</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84895673</guid><author>viscent_huang</author><pubDate>Wed, 17 May 2017 21:09:14 +0800</pubDate><description><![CDATA[


本人新书《Java多线程编程实战指南（核心篇）》现已出版上市。
出版社现在有赠书活动：http://blog.youkuaiyun.com/broadview2006/article/details/72396623。

豆瓣主页
https://book.douban.com/subject/27034721/

购买链接
京东：https://item.jd.com/12184434...]]></description><category></category></item><item><title><![CDATA[【新闻】本人新书《Java多线程编程实战指南（核心篇）》已出版上市]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/72452962</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/72452962</guid><author>viscent_huang</author><pubDate>Wed, 17 May 2017 21:07:17 +0800</pubDate><description><![CDATA[豆瓣主页https://book.douban.com/subject/27034721/购买链接京东：https://item.jd.com/12184434.html亚马逊： https://www.amazon.cn/dp/B071RV8NLW互动出版网： http://product.china-pub.com/5661167当当： http://product.dangdang.com/2]]></description><category></category></item><item><title><![CDATA[《Java多线程编程实战指南（设计模式篇）》答疑总结(陆续更新，part2)]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84753845</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84753845</guid><author>viscent_huang</author><pubDate>Tue, 01 Dec 2015 23:26:43 +0800</pubDate><description><![CDATA[
什么是上下文切换，哪些因素会导致上下文切换，它有哪些开销，如何降低这些开销(2015-12-01)？
《Java多线程编程实战指南（设计模式篇）》作者回复：《Java多线程编程实战指南（设计模式篇）》第1章打了个比方：比如我们用手机与他人通话的时候，聊着聊着的时候由于第3个人拨打了你的电话。那么，这个时候你可能会做的一个动作就是先记下刚才的通话聊到哪里的（即进度），接着和对方说“我先接个电话...]]></description><category></category></item><item><title><![CDATA[《Java多线程编程实战指南（设计模式篇）》答疑总结(陆续更新，part1)]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/84752539</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/84752539</guid><author>viscent_huang</author><pubDate>Wed, 25 Nov 2015 18:26:46 +0800</pubDate><description><![CDATA[
《Java多线程编程实战指南（设计模式篇）》答疑开展以来，不少网友提出的问题既有与本书有关的话题，也有Java多线程编程基础知识的相关话题。由于时间关系，对于重复的问题我不逐一回复。还请各位网友参考本总结。这里我将一些与本书相关以及具有代表性的问题提炼下，并附上的我的简要回复。其实，有些问题的回复如果要再深入或者详细，恐怕得写一篇文章，只是时间关系......
 
活动时间:（11月23日...]]></description><category></category></item><item><title><![CDATA[[置顶] 国内首部Java多线程设计模式原创作品《Java多线程编程实战指南（设计模式篇）》已出版]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904521</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904521</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:43 +0800</pubDate><description><![CDATA[国内首部Java多线程设计模式原创作品《Java多线程编程实战指南（设计模式篇）》已由电子工业出版社出版。本书从理论到实战，用生活化的实例和通俗易懂的语言全面介绍Java多线程编程的"三十六计"——多线程设计模式。]]></description><category></category></item><item><title><![CDATA[[置顶] 通过心理学知识提高问题定位与解决能力（上）]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904519</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904519</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:38 +0800</pubDate><description><![CDATA[本文由本人首次发布在infoq中文站上：http://www.infoq.com/cn/articles/improve-problem-solve-ability-by-psychology-knowledge-part01。转载请注明作者： 黄文海 出处：http://viscent.iteye.com
 
前言
软件开发工作无论是从宏观还是微观上看，都可以看作一个问题解决的过程。从宏观]]></description><category></category></item><item><title><![CDATA[[置顶] Java多线程编程模式实战指南（三）：Two-phase Termination模式]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904515</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904515</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:32 +0800</pubDate><description><![CDATA[本文由本人首次发布在infoq中文站上：http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-two-phase-termination。转载请注明作者： 黄文海 出处：http://viscent.iteye.com。
 
停止线程是一个目标简单而实现却不那么简单的任务。首先，Java没有提供直接的API用于]]></description><category></category></item><item><title><![CDATA[[置顶] Java多线程编程模式实战指南（二）：Immutable Object模式]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904511</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904511</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:26 +0800</pubDate><description><![CDATA[本文由本人首次发布在infoq中文站上：http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-immutable-object。转载请注明作者： 黄文海 出处：http://viscent.iteye.com。
 
多线程共享变量的情况下，为了保证数据一致性，往往需要对这些变量的访问进行加锁。而锁本身又会带来一]]></description><category></category></item><item><title><![CDATA[[置顶]  Java多线程编程模式实战指南(一)：Active Object模式（下）]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904507</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904507</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:21 +0800</pubDate><description><![CDATA[本文由黄文海首次发布在infoq中文站上：http://www.infoq.com/cn/articles/Java-multithreaded-programming-mode-active-object-part2。转载请注明作者： 黄文海 出处：http://viscent.iteye.com。
 
Active Object模式的评价与实现考量
Active Object模式通过将方]]></description><category></category></item><item><title><![CDATA[[置顶] Java多线程编程模式实战指南(一)：Active Object模式（上）]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904503</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904503</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:15 +0800</pubDate><description><![CDATA[本文由黄文海首次发布在infoq中文站上：http://www.infoq.com/cn/articles/Java-multithreaded-programming-mode-active-object-part1 。转载请注明作者： 黄文海 出处：http://viscent.iteye.com。
 
Active Object模式简介
Active Object模式是一种异步编程模式]]></description><category></category></item><item><title><![CDATA[[置顶] 敏捷项目管理实战之在敏捷开发中引入 Story 演示]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904501</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904501</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:10 +0800</pubDate><description><![CDATA[Story 演示活动可以帮助敏捷开发团队提高开发质量、降低返工带来的质量低下与进度滞后的可能性。本文以作者黄文海的实际敏捷开发与管理的经验为基础，分享了具体实施 Story 演示的注意要点以及如何控制 Story 演示的成本。本文分享的不仅是一个具体的敏捷开发实践，更是一种敏捷开发的思想和思维方法。此文发表在IBM developerWorks网站上：http://www.ibm.com/de]]></description><category></category></item><item><title><![CDATA[[置顶] Linux下恢复被误删除的syslog—/var/log/messages]]></title><link>https://blog.youkuaiyun.com/viscent_huang/article/details/49904497</link><guid>https://blog.youkuaiyun.com/viscent_huang/article/details/49904497</guid><author>viscent_huang</author><pubDate>Wed, 18 Nov 2015 11:21:03 +0800</pubDate><description><![CDATA[原创文章，转载请注明作者：黄文海 来源：http://viscent.iteye.com，同步发布在：http://blog.viscenthuang.info软件开发日常工作中，出于方便定位问题的需要，我们常常会去清空日志文件。但是，Linux新手容易犯的一个错误是把日志文件给直接删除，而不是删除日志文件的内容。直接删除日志文件往往导致新产生的日志记录无法被写入到日志文件中（因为它已经被删除]]></description><category></category></item></channel></rss>