<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Patrick Zhou]]></title><description><![CDATA[iter]]></description><link>https://blog.youkuaiyun.com/u010886534</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010886534]]></copyright><item><title><![CDATA[Zeromq  学习笔记2 - 邮件槽 线程间通信]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/101452876</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/101452876</guid><author>u010886534</author><pubDate>Thu, 26 Sep 2019 18:26:31 +0800</pubDate><description><![CDATA[说一下 zmq 的通信机制 mailbox 主要用于 io线程之间 io线程和 socket 之间的通信 。

mailbox 主要有两个实现 一个是mailbox_t 另一个是mailbox_safe_t

区别mailbox_t 是一对一通信多个生产者对一个消费者mailbox_safe_t 多个生产者对多个消费者

mailbox_t 中有两个核心的属性_cpipe_signa...]]></description><category></category></item><item><title><![CDATA[Zeromq  学习笔记1]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/101364722</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/101364722</guid><author>u010886534</author><pubDate>Wed, 25 Sep 2019 16:15:39 +0800</pubDate><description><![CDATA[最近因为工作原因使用了 zmq 作为网络通讯介质。也因此学习了一下源码。 zmq总体功能比较强劲，可实现ipc rpc 订阅分发 进程内通信 等等

总体图:



ctx_t 是所有zmq 的容器。负责管理 zmq socket iothread 和 session。

先从 ctx_t说起


void *zmq_init (int io_threads_)
{
    if (i...]]></description><category></category></item><item><title><![CDATA[我的vimrc 配置]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/48346269</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/48346269</guid><author>u010886534</author><pubDate>Thu, 10 Sep 2015 17:20:15 +0800</pubDate><description><![CDATA[set nocompatible               " be iMproved
filetype off                   " required!       /**  从这行开始，vimrc配置 **/




set rtp+=~/.vim/bundle/vundle/
call vundle#rc()




" let Vundle ma]]></description><category></category></item><item><title><![CDATA[python 线程安全的对象池]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/46953375</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/46953375</guid><author>u010886534</author><pubDate>Sun, 19 Jul 2015 11:13:31 +0800</pubDate><description><![CDATA[from Queue import Queue,Empty,Full
from threading import Lock

class SafeThreadPool(object):

    def __init__(self, createFun, initSize=1, maxSize=1):


        self.__queue = Queue()]]></description><category></category></item><item><title><![CDATA[uwsgi 配置]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/46934467</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/46934467</guid><author>u010886534</author><pubDate>Fri, 17 Jul 2015 23:32:53 +0800</pubDate><description><![CDATA[[uwsgi]
socket = 127.0.0.1:9000
master = true
workers = 4
harakiri = 20
harakiri-verbose = true
daemonize = /opt/local/var/log/uwsgi.log
buffer-size = 4096
master = true
pythonpath = /Users/z]]></description><category></category></item><item><title><![CDATA[gearman 0.32 安装笔记]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/45787671</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/45787671</guid><author>u010886534</author><pubDate>Sun, 17 May 2015 11:31:03 +0800</pubDate><description><![CDATA[环境 centos6.4
安装boost
./b2
yum -y install libevent
yum -y install libevent-devel

下载 e2fsprogs
./configure --enable-elf-shlibs --prefix=.......

cp ./lib/uuid/*.h  ................
cp ./lib/l]]></description><category></category></item><item><title><![CDATA[gearman 源码学习笔记3]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/44655843</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/44655843</guid><author>u010886534</author><pubDate>Thu, 26 Mar 2015 20:55:42 +0800</pubDate><description><![CDATA[这次说一把gearman的网络模块，gearman是利用libevent高性能网络库实现网络功能的。
首先看
 gearmand->ret= _listen_init(gearmand);
    if (gearmand->ret != GEARMAND_SUCCESS)
    {
      return gearmand->ret;
    }gearman在_listen_init
]]></description><category></category></item><item><title><![CDATA[gearman 源码学习笔记2]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/44654087</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/44654087</guid><author>u010886534</author><pubDate>Thu, 26 Mar 2015 19:14:04 +0800</pubDate><description><![CDATA[上回说到要说 gearman 如果利用libevent 编写网络框架。但是在说之前还得先说一下 gearman如何使用多线程，
不说了上代码。

 uint32_t x= 0;
    do
    {
      gearmand->ret= gearmand_thread_create(*gearmand);
      if (gearmand->ret != GEARMAND_SUC]]></description><category></category></item><item><title><![CDATA[gearman 源码学习笔记1]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/44653665</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/44653665</guid><author>u010886534</author><pubDate>Thu, 26 Mar 2015 18:37:26 +0800</pubDate><description><![CDATA[1年前和阿里的大牛们聊天。被告知etao网使用 gearman 做分布式的中间件使访问达到了 百万的qps。从次对gearman有了初步的认识。之前主导项目的时候决定使用gearman做 分布式。 但是当压力到达一定级别的时候。
gearman 产生了大量的 close wait 导致大量的worker 无法连到 gearman。试了各种办法无法解决从而产生了研究gearman源码的冲动。不说废]]></description><category></category></item><item><title><![CDATA[那些年我写过的代码]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/42146525</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/42146525</guid><author>u010886534</author><pubDate>Thu, 25 Dec 2014 15:12:13 +0800</pubDate><description><![CDATA[2014年冬，今年是我毕业后的第7个年头，回想从刚毕业时的青葱少年，到现在的衣带渐宽。回望这些年发生的过往，有过唏嘘，有过激情，有过挫折，有过对技术的迷恋，对成功的憧憬。但现在发现我还只是个程序员。
  我已经自诩自己是个supper programer，会c c++ java python node c# 精通linux 对设计结构驾轻就熟。
但是，程序员就是程序员，虽然拿着让不少人都羡慕的]]></description><category></category></item><item><title><![CDATA[log4js multiprocess appenders 的配置]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/41204823</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/41204823</guid><author>u010886534</author><pubDate>Mon, 17 Nov 2014 09:58:22 +0800</pubDate><description><![CDATA[master：
{
      "appenders": [
        { 
        "type": 
"multiprocess", 
        "mode":
"master",
        "loggerHost":
"localhost",
        "loggerPort":
5000,
        "appender":{
 ]]></description><category></category></item><item><title><![CDATA[json-lib-2.4  所需要的依赖包]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/39027751</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/39027751</guid><author>u010886534</author><pubDate>Wed, 03 Sep 2014 14:54:17 +0800</pubDate><description><![CDATA[commons-beanutils-1.8.0.jar
commons-collections-3.1.jar]]></description><category></category></item><item><title><![CDATA[linux 修改 ulimit]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/38759507</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/38759507</guid><author>u010886534</author><pubDate>Fri, 22 Aug 2014 17:10:41 +0800</pubDate><description><![CDATA[vim /etc/security/limits.c]]></description><category></category></item><item><title><![CDATA[nginx 的优化]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/38759423</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/38759423</guid><author>u010886534</author><pubDate>Fri, 22 Aug 2014 17:06:22 +0800</pubDate><description><![CDATA[worker_processes  4;
worker_rlimit_nofile 10240;


#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;


#pid        logs/nginx.pid;




eve]]></description><category></category></item><item><title><![CDATA[nginx + uwsgi  vs  apache + wsgi]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/38755793</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/38755793</guid><author>u010886534</author><pubDate>Fri, 22 Aug 2014 13:33:36 +0800</pubDate><description><![CDATA[之前听说 今天做了个实验]]></description><category></category></item><item><title><![CDATA[linux sysctl.conf 调优]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/38708925</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/38708925</guid><author>u010886534</author><pubDate>Wed, 20 Aug 2014 17:07:08 +0800</pubDate><description><![CDATA[net.ipv4.ip_local_port_range = 1024 65536

net.core.rmem_max=16777216

net.core.wmem_max=16777216

net.ipv4.tcp_rmem=4096 87380 16777216

net.ipv4.tcp_wmem=4096 65536 16777216

net.ipv4.tcp_]]></description><category></category></item><item><title><![CDATA[一个 wsgi的 python log]]></title><link>https://blog.youkuaiyun.com/u010886534/article/details/38708797</link><guid>https://blog.youkuaiyun.com/u010886534/article/details/38708797</guid><author>u010886534</author><pubDate>Wed, 20 Aug 2014 17:00:14 +0800</pubDate><description><![CDATA[class WsgiLoggingHandler(logging.Handler):
    def __init__(self):
        logging.Handler.__init__(self)


    def emit(self, record):
        msg = self.format(record)
        web.debug(msg)]]></description><category></category></item></channel></rss>