生成器和普通函数有些区别,比如生成器不用return返回,而用yield来返回一系列元素
除非“召唤”生成器的next(),否则函数体里面不会执行任何代码块,上下文环境保存着。
虽然不需要明确定义__iter__()和next()方法,但是它本身包含这个方法。
当想要结束一个协程时,使用close()方法即可,close会在协程中引发GeneratorExit异常,这时候可以通过try/ex...
分类:
编程语言 时间:
2014-05-10 09:53:34
阅读次数:
317
在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。为什么要使用生产者和消费者模式在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生...
分类:
其他好文 时间:
2014-05-09 08:19:05
阅读次数:
455
在推荐系统实际运用中,各种混合技术是其中一项极为重要的核心技术。在工程实践中我们发现,混合技术对提升推荐效果、改进推荐系统的性能等都有重要意义,因此本文对该专题进行如下的一些总结和介绍。引言在这个信息爆炸的时代,消费者面临众多选择、未知的领域、过载的信息时,往往无所适从;然而与此同时,内容的生产者(...
分类:
其他好文 时间:
2014-05-09 02:50:15
阅读次数:
1256
eventloop 用作 non-blockingIO 和定时器。threadpool
用来做计算,具体可以是任务队列或消费者-生产者队列任务对列,生产消费者 线程池TaskQueue、Producer-Consumer Queue、
CountDownLatchPTHREAD_MUTEX_ERRO...
分类:
其他好文 时间:
2014-05-08 10:09:52
阅读次数:
241
下面的两个线程共享一个消息队列,一个用来放整数到队列,一个从队列里取消息出来。此程序在控制台不停的输出递增数字,主要是内存不会泄露
用到了多线程、ACE_Message_Queue、ACE_Message_Block、ACE_Thread_Manager::instance()->spawn等
#include
using namespace std;
#include "boost/lex...
分类:
其他好文 时间:
2014-05-07 21:29:38
阅读次数:
476
题目:给定一个n*m大的纸张,上面表明了每块上的字母,在其背后给定了对应位置的字母的value,在最后给出需要剪出来的剪纸的字母序列。
方法:暴力搜索。
代码:
#include
#include
#include
#include
using namespace std;
char map[502][502];
int Map[502][502];
int vis[502][502...
分类:
其他好文 时间:
2014-05-05 12:53:36
阅读次数:
338
实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲解,而我们却视而不见不以为然的。在博文《一种面向作业流(工作流)的轻量级可复用的异步流水开发框架的设计与实现》中将介绍一种生产者/消费者模式的具体应用。生产者消费者问题是研究多线程程序...
分类:
编程语言 时间:
2014-05-04 11:01:12
阅读次数:
418
用wait notifyAll来实现生产者与消费者模式
用BlockingDeque来实现生产者与消费者模式
用Executor来实现生产者与消费者模式...
分类:
编程语言 时间:
2014-05-03 16:22:26
阅读次数:
351
JDK1.5提供了阻塞队列接口BlockingQueue,它是一个有界阻塞队列。BlockingQueue实现是线程安全的,可以安全地与多个生产者和多个使用者一起使用。使用时用其实现类ArrayBlockingQueue,它一个由数组支持的有界阻塞队列。此队列按
FIFO(先进先出)原则对元素进行排...
分类:
编程语言 时间:
2014-05-01 06:58:46
阅读次数:
373