12 2017 档案

摘要: 阅读全文
posted @ 2017-12-29 10:22 Bigberg 阅读(481) 评论(2) 推荐(0) 编辑
摘要:一、消息分发 RabbitMQ中的消息都只能存储在Queue中,生产者(下图中的P)生产消息并最终投递到Queue中,消费者(下图中的C)可以从Queue中获取消息并消费。 多个消费者可以订阅同一个Queue,这时Queue中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并 阅读全文
posted @ 2017-12-28 18:01 Bigberg 阅读(2954) 评论(0) 推荐(0) 编辑
摘要:一、前言 在python中本身就是存在队列queue。一个是线程队列queue,另一个是进程multiprocessing中的队列Queue。 线程queue:只用于线程之间的数据交互 进程Queue:用于同一进程下父进程和子进程之间的数据交互,或者同属于一个父进程下的多个子进程之间的交互 二、Ra 阅读全文
posted @ 2017-12-28 16:46 Bigberg 阅读(520) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/whycold/article/details/41119807 一、引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这 阅读全文
posted @ 2017-12-28 16:06 Bigberg 阅读(465) 评论(0) 推荐(0) 编辑
摘要:一、递归函数 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 特性: 必须有一个明确的结束条件 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 递归函数的优点是定义简单,逻辑清晰 注意: 使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(s 阅读全文
posted @ 2017-12-28 11:26 Bigberg 阅读(471) 评论(0) 推荐(0) 编辑
摘要:一、下载并安装erlang和rabbitmq http://www.erlang.org/ http://www.rabbitmq.com/ 下载下来直接安装 二、RabbitMQ的设置 2.1 查看启动状态 到安装目录下 可能会遇到报错: win10 下的解决 拷贝 C:\Windows\Syst 阅读全文
posted @ 2017-12-27 17:58 Bigberg 阅读(748) 评论(0) 推荐(0) 编辑
摘要:一、Selectors模块 它具有根据平台选出最佳的IO多路机制,比如在win的系统上他默认的是select模式而在linux上它默认的epoll,建议使用selectors。 常用共分为三种:select、poll、epoll 二、用法 selectors server 下面开始强行解释了。。。。 阅读全文
posted @ 2017-12-19 11:59 Bigberg 阅读(508) 评论(0) 推荐(0) 编辑
摘要:一、Why Docker默认的镜像和容器存储位置在/var/lib/docker中,如果仅仅是做测试,我们可能没有必要修改,但是当大量使用的时候,我们可能就要默认存储的位置了。 二、How 2.1 修改docker.service文件 --graph=/data/docker:docker新的存储位 阅读全文
posted @ 2017-12-18 15:22 Bigberg 阅读(51006) 评论(0) 推荐(2) 编辑
摘要:yum -y install bridge-utils ifconfig docker0 down brctl delbr docker0 阅读全文
posted @ 2017-12-18 10:13 Bigberg 阅读(9251) 评论(0) 推荐(0) 编辑
摘要:一、前言 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时变成readable 和writeable, 或者通信错误,select()使得同时监控多个连接变的简单,并且这比写一个 阅读全文
posted @ 2017-12-15 20:12 Bigberg 阅读(9775) 评论(1) 推荐(3) 编辑
摘要:一、三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。 select目前几乎在所有的平 阅读全文
posted @ 2017-12-14 19:41 Bigberg 阅读(587) 评论(0) 推荐(0) 编辑
摘要:一、I/O模式 对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段: 正式因为这两个阶段,linux系统产生了下面五种网络模式的方案。 - 阻塞 I/O(blockin 阅读全文
posted @ 2017-12-13 19:56 Bigberg 阅读(2840) 评论(0) 推荐(0) 编辑
摘要:一、前言 在事件驱动模型中,我们说当程序遇到I/O操作时,注册 一个回调到事件循环中,主程序继续做其他事情。当I/O操作完成后,再切换回原来的任务。这就是说I/O操作是和程序本身没关系的,其实I/O操作都是由操作系统来完成的。那么程序怎么知道I/O操作完成并切换回来呢?这就要求这个I/O操作处理完成 阅读全文
posted @ 2017-12-13 15:54 Bigberg 阅读(934) 评论(0) 推荐(0) 编辑
摘要:一、前言 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求 上面的几种方式,各有千秋, 第(1)中方法, 阅读全文
posted @ 2017-12-12 15:30 Bigberg 阅读(12664) 评论(0) 推荐(2) 编辑
摘要:参考博客: http://www.cnblogs.com/alex3714/articles/5248247.html 一、前言 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻 阅读全文
posted @ 2017-12-12 10:55 Bigberg 阅读(893) 评论(0) 推荐(0) 编辑
摘要:一、前言 进程间的通信Queue()和Pipe(),可以实现进程间的数据传递。但是要使python进程间共享数据,我们就要使用multiprocessing.Manager。 Manager()返回的manager对象控制了一个server进程,此进程包含的python对象可以被其他的进程通过pro 阅读全文
posted @ 2017-12-08 17:14 Bigberg 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:一、概述 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局部状态的一 阅读全文
posted @ 2017-12-08 15:45 Bigberg 阅读(558) 评论(0) 推荐(0) 编辑
摘要:一、前言 进程池内部维护一个进程序列,当使用时,则去进程池中获取一个进程,如果进程池序列中没有可供使用的进程,那么程序就会等待,直到进程池中有可用进程为止。进程池的作用可以在多进程程序中有效的控制进程运行的个数,维护系统的稳定。 二、multiprocessing.pool 2.1 apply(fu 阅读全文
posted @ 2017-12-07 17:44 Bigberg 阅读(1704) 评论(0) 推荐(0) 编辑
摘要:参考博客:http://blog.csdn.net/HeatDeath/article/details/72844120 一、前言 线程存在于进程中,对于同一个进程内的线程,该进程内的资源是共享的,各个线程可以竞争获取。而不同的进程有独立的内存空间,它们之间不能直接相互访问,那么进程和进程间如何相互 阅读全文
posted @ 2017-12-07 14:39 Bigberg 阅读(289) 评论(0) 推荐(0) 编辑
摘要:参考博客:https://www.cnblogs.com/vamei/archive/2012/10/12/2721484.html 一、前言 Python的线程或进程都是调用操作系统的原生线程或进程,但是由于GIL的存在,python多线程并不能利用cpu多核的优势。而python的进程是不存在G 阅读全文
posted @ 2017-12-06 16:13 Bigberg 阅读(584) 评论(0) 推荐(0) 编辑