<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[王德成的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangemperor</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangemperor]]></copyright><item><title><![CDATA[《netty权威指南》可运行的代码]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/80781861</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/80781861</guid><author>wangemperor</author><pubDate>Sat, 23 Jun 2018 11:02:48 +0800</pubDate><description><![CDATA[学习《netty权威指南时》发现有的代码有误，我都更正了一下，可运行的代码可以访问我的github:



https://github.com/wangdecheng/mycodes/tree/master/src/main/java/netty]]></description><category></category></item><item><title><![CDATA[ubuntu16下编译调试openjdk8]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/80715952</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/80715952</guid><author>wangemperor</author><pubDate>Sun, 17 Jun 2018 11:12:47 +0800</pubDate><description><![CDATA[一、下载源码：



https://pan.baidu.com/s/1MPjDhvoV8NMxzNx8Qz0wVw

二、安装openjdk7（boot jdk）



    sudo add-apt-repository ppa:openjdk-r/ppa  
    sudo apt-get update   
    sudo apt-get install openjdk-7-jdk
...]]></description><category></category></item><item><title><![CDATA[我读过的最好的epoll讲解--转自"知乎"]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/80715486</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/80715486</guid><author>wangemperor</author><pubDate>Sat, 16 Jun 2018 21:49:39 +0800</pubDate><description><![CDATA[首先我们来定义流的概念，一个流可以是文件，socket，pipe等等可以进行I/O操作的内核对象。    不管是文件，还是套接字，还是管道，我们都可以把他们看作流。

之后我们来讨论I/O的操作，通过read，我们可以从流中读入数据；通过write，我们可以往流写入数据。现在假定一个情形，我们需要从流中读数据，但是流中还没有数据，（典型的例子为，客户端要从socket读如数据，但是服务器还没有把数...]]></description><category></category></item><item><title><![CDATA[Unix网络编程之四：IO复用之select与poll的区别]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/80646581</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/80646581</guid><author>wangemperor</author><pubDate>Mon, 11 Jun 2018 00:51:57 +0800</pubDate><description><![CDATA[两者的区别在不少地方都能搜到，包括最大连接数的限制，兼容性等等。这里说一下实现上的区别。 
一、select



#include &amp;amp;amp;lt;sys/select.h&amp;amp;amp;gt;
int select (int __nfds, fd_set *__restrict __readfds,
           fd_set *__restrict __writefds,
           fd_se...]]></description><category></category></item><item><title><![CDATA[Unix网络编程之三：查看进程的状态和关系]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/80617819</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/80617819</guid><author>wangemperor</author><pubDate>Fri, 08 Jun 2018 09:02:18 +0800</pubDate><description><![CDATA[一、查看端口号和进程号的对应关系



netstat -anpt | grep 1113



tcp        0      0 0.0.0.0:1113            0.0.0.0:*               LISTEN      4413/inputoutput_1
tcp        0      0 127.0.0.1:55342         127.0.0....]]></description><category></category></item><item><title><![CDATA[unix网络编程之二 NetBeans运行环境搭建]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/80614395</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/80614395</guid><author>wangemperor</author><pubDate>Thu, 07 Jun 2018 20:09:56 +0800</pubDate><description><![CDATA[NetBeans下载



https://netbeans.org/downloads/



环境搭建

一、新建C Application



二、linker配置 


注意： 
1、Configuration 里有Debug,Release，需要分别配置 
2、Output 后面可以输入 main接收的参数，如Unix 网络编程里的daytimecli.c ，此处可以加上 IP地址（如...]]></description><category></category></item><item><title><![CDATA[UNIX网络编程之一：代码环境搭建]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/80560381</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/80560381</guid><author>wangemperor</author><pubDate>Sun, 03 Jun 2018 21:18:56 +0800</pubDate><description><![CDATA[一、源代码的下载和编译  
源代码下载地址：http://www.unpbook.com/ ， 下载下来得到unpv13e.tar.gz文件,如果慢的话，笔者已经上传到网盘:https://pan.baidu.com/s/1nLRUfQ0T7EAcnh4p6Bs5yQ

编译步骤：  
解压缩unpv13e.tar.gz

tar zxvf unpv13e.tar.gz

1 
进入unpv13e...]]></description><category></category></item><item><title><![CDATA[Chapter4]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/78943238</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/78943238</guid><author>wangemperor</author><pubDate>Sun, 31 Dec 2017 21:04:22 +0800</pubDate><description><![CDATA[4.2 锁优化 
锁偏向->轻量级锁->自旋锁->锁消除 
4.4.2 无锁的线程安全整数AtomicInteger 
4.4.8 amino 无锁并发框架 
4.4.9 synchronousqueue]]></description><category></category></item><item><title><![CDATA[chapter3:JDK并发包]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/78941604</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/78941604</guid><author>wangemperor</author><pubDate>Sun, 31 Dec 2017 13:43:03 +0800</pubDate><description><![CDATA[3.1.7. 线程阻塞工具类：LockSupport 
  park（）：阻塞当前线程 
  parkNanos()、parkUntil():限时等待 
  unpark():恢复执行 
  和Threak.suspend相比，它弥补了在resume之前发生，导致线程无法继续执行的情况。和wait相比，它不需要先获得锁，也不会抛出InterruputException,但接收到中断后，仍然会响应，继]]></description><category></category></item><item><title><![CDATA[Log4j日志分文件打印配置规则]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/78894626</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/78894626</guid><author>wangemperor</author><pubDate>Mon, 25 Dec 2017 17:03:03 +0800</pubDate><description><![CDATA[Log4j日志分文件打印配置规则]]></description><category></category></item><item><title><![CDATA[Mac中virtualbox安装windows识别U盘]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/78274243</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/78274243</guid><author>wangemperor</author><pubDate>Wed, 18 Oct 2017 16:15:40 +0800</pubDate><description><![CDATA[1、windows中安装Virtualbox Guest Additions
2、Mac 中安装VirtualBox Extension Pack 下载地址：https://www.virtualbox.org/wiki/Downloads。
           如果是旧的版本，下载地址：https://www.virtualbox.org/wiki/Download_Old_Builds]]></description><category></category></item><item><title><![CDATA[Mac OS 下VirtualBox如何对硬盘进行扩容]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/76915907</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/76915907</guid><author>wangemperor</author><pubDate>Tue, 08 Aug 2017 16:25:20 +0800</pubDate><description><![CDATA[原文链接：http://blog.sina.com.cn/s/blog_62d4d5900102w4ak.html

1.找到VBoxManager工具

1）打开Finder，找到【应用程序】，在右侧找到VirtualBox.app，然后打开右键，找到【显示包内容】，点击打开


2）看到目录就一路点下去，然后看到这个【MacOS】目录，再继续点


3）看到我们的目标文件V]]></description><category></category></item><item><title><![CDATA[java使用CountDownLatch实现线程顺序执行]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/75152502</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/75152502</guid><author>wangemperor</author><pubDate>Sat, 15 Jul 2017 13:04:15 +0800</pubDate><description><![CDATA[package concurrent;


import java.util.concurrent.CountDownLatch;


public class ThreadSequence {


   public static void main(String[] args) throws InterruptedException {
       final Count]]></description><category></category></item><item><title><![CDATA[js实现浏览器全屏 F11全屏]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/84803997</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/84803997</guid><author>wangemperor</author><pubDate>Wed, 25 May 2016 09:35:11 +0800</pubDate><description><![CDATA[
浏览器全屏模式的启动函数requestFullscreen仍然需要附带各浏览器的js方言前缀，相信下面这段代码需要你花大量的搜索才能凑齐：
代码如下:

// 判断各种浏览器，找到正确的方法function launchFullscreen(element) {  if(element.requestFullscreen) {    element.requestFullscreen(); ...]]></description><category></category></item><item><title><![CDATA[nosql选择]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/51423750</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/51423750</guid><author>wangemperor</author><pubDate>Mon, 16 May 2016 11:31:29 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[redis入门]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/84802497</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/84802497</guid><author>wangemperor</author><pubDate>Fri, 13 May 2016 17:20:22 +0800</pubDate><description><![CDATA[
Redis - 数据类型
Redis支持5种类型的数据类型，它描述如下的：
字符串
Redis字符串是字节序列。Redis字符串是二进制安全的，这意味着他们有一个已知的长度没有任何特殊字符终止，所以你可以存储任何东西，512兆为上限。
例子


redis 127.0.0.1:6379&amp;gt; SET name &quot;yiibai&quot;
OK
redis 127.0.0.1:6379&amp;g...]]></description><category></category></item><item><title><![CDATA[centos7安装redis3.2]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/84802464</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/84802464</guid><author>wangemperor</author><pubDate>Fri, 13 May 2016 15:26:55 +0800</pubDate><description><![CDATA[
一 下载redis最新版 http://www.redis.cn
二 解压 tar xvzf redis-3.2.tar.gz
三 cd redis-3.2.0
四 make
 
问题：
异常一：
make[2]: cc: Command not found
异常原因：没有安装gcc
解决方案：yum install gcc-c++
 
异常二：
zmalloc.h:5...]]></description><category></category></item><item><title><![CDATA[CodeIgniter笔记4]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/84701442</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/84701442</guid><author>wangemperor</author><pubDate>Tue, 10 Feb 2015 18:37:21 +0800</pubDate><description><![CDATA[
 
自动连接数据库
在使用数据库之前，我们最好将数据库进行自动连接：config/autoload.php自动加载 $autoload['libraries'] = array('database');
 
一些常用函数
选择数据
$this-&amp;gt;db-&amp;gt;select();
允许你在SQL查询中写 SELECT 部分。
$this-&amp;gt;db-&amp;gt;where();...]]></description><category></category></item><item><title><![CDATA[CodeIgniter笔记3]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/84701440</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/84701440</guid><author>wangemperor</author><pubDate>Tue, 10 Feb 2015 18:36:10 +0800</pubDate><description><![CDATA[
 
Cookie Helper
装载这个 helper，这个 helper 可以通过下面的方法来装载:
$this-&amp;gt;load-&amp;gt;helper('cookie');
可以加载库后直接使用函数：
set_cookie().
get_cookie().
delete_cookie()
 
Email 辅助函数
本辅助函数的装载通过如下代码完成:  $this-&amp;gt;...]]></description><category></category></item><item><title><![CDATA[CodeIgniter笔记2]]></title><link>https://blog.youkuaiyun.com/wangemperor/article/details/84701437</link><guid>https://blog.youkuaiyun.com/wangemperor/article/details/84701437</guid><author>wangemperor</author><pubDate>Tue, 10 Feb 2015 18:35:13 +0800</pubDate><description><![CDATA[
Email 类
在配置文件中设置 Email 参数
如果您不想使用使用上述方法设定参数，您可以把它们放入一个配置文件。创建一个新文件称为email.php ，添加$config数组在该文件中。然后将该文件保存为config/email.php 它将自动的被使用。如果您保存了一个参数配置文件，就不需要使用$this-&amp;gt;email-&amp;gt;initialize()函数来初始化参数了.
 ...]]></description><category></category></item></channel></rss>