并发运算lib

最近对类似于erlang或者golang的并发运算很感兴趣。以下是看到的相关资料。

libgo    c++,技术:协程,多线程。这是俺发现的用法最漂亮的c++库,用法参考golang

CAF    全称c++ actor framework,用线程池做任务调度,貌似不支持协程,所以写code用了很多回调的写法  

其他协程库   如libtask, libco, boost::coroutine, libto,  libco,libcopp.

SimpleActorModel  俺自己写了一个actor model的库  没做啥测试,仅供学习用

其他

https://github.com/tonbit/coroutine/blob/master/coroutine.h  实现了一个简单的协程lib
https://github.com/xhawk18/promise-cpp    实现了类似于javascript的promose lib

时间: 2024-07-30 10:10:00

并发运算lib的相关文章

2017/9/5的学习内容___通过yield实现在单线程的情况下实现并发运算的效果

之前的学习内容,由于没有申请开通博客,就没有分享,今天想分享一下学习内容:通过yield实现在单线程的情况下实现并发运算的效果 采用的是经典的生产消费者模型 定义了两个函数 Consumer与Producer 关于生成器标志yield : 如果用__next__访问,只是单纯调用yield :如果是send访问,不仅可以访问yield,也可以给yield赋值! 需求:一个人造包子:两个人吃包子: 代码如下: 1 # -*- coding:utf-8 -*- 2 # Author : 何子辰 3

golang 并发运算时主线程先运行完,子线程运行没结束的问题记录

代码如下: blocks,err:= mgo.FindBlocks(batch) //获得当前批次下的矿体信息 cubes:= BlockCutting(blocks[0],x,y,z,nest) for _,v := range cubes{if len(v.Incise)!=0 { beego.Debug("有东西") } } 其中BlockCutting中的一步是用go并发做的 go BlockAndObject(block, faces, segments, 0, nest)

通过生成器yield实现单线程的情况下实现并发运算效果(异步IO的雏形)

一.协程: 1.生成器只有在调用时才会生成相应的数据 2.调用方式有 " str__next__.()   str.send() ", 3.并且每调用一次就产生一个值调用到最后一个值后会报错 4.报错可用try和except做异常处理 注意: next:是直接调用yield,并不会传值. send:是调用并直接传值给yield. 1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 # Author:Dong Ye 4 5 6 ''' 7

2016-06-27 并发编程

摘自 深入理解操作系统 CHA 12 并发是在逻辑控制流上重叠.应用级并发在下列情况下是很有用的: 1 访问慢速I/O设备. 2 与人交互 3 通过推迟工作以降低延迟 4 服务多个网络客户端 5 在多核机器上进行并发运算 使用应用级并发的应用程序称为 并发程序.现代操作系统提供了3种基本的构造并发程序的方法: 1 进程:此方法,每个逻辑控制流都是一个进程,由内核来调度和维护.进程有自己的虚拟地址空间,若要和其他流进行通信,控制流必须使用IPC(进程间通信)机制.IPC机制有:管道,共享内存,队列

Java并发编程从入门到精通 张振华.Jack --我的书

[当当.京东.天猫.亚马逊.新华书店等均有销售] 目 录 第一部分:线程并发基础 第1章 概念部分   1 1.1 CPU核心数.线程数 (主流cpu,线程数的大体情况说一下) 1 1.2 CPU时间片轮转机制 2 1.3 什么是进程和什么是线程 4 1.4 进程和线程的比较 5 1.5 什么是并行运行 7 1.6 什么是多并发运行 8 1.7 什么是吞吐量 9 1.8  多并发编程的意义及其好处和注意事项 10 1.9  分布式与并发运算关系 11 1.10 Linux和Window多并发可以

Java并发编程从入门到精通 张振华.Jack --【吐血推荐、热销书籍】

[当当.京东.天猫.亚马逊.新华书店等均有销售]目 录 第一部分:线程并发基础 第1章 概念部分   1 1.1 CPU核心数.线程数 (主流cpu,线程数的大体情况说一下) 1 1.2 CPU时间片轮转机制 2 1.3 什么是进程和什么是线程 4 1.4 进程和线程的比较 5 1.5 什么是并行运行 7 1.6 什么是多并发运行 8 1.7 什么是吞吐量 9 1.8  多并发编程的意义及其好处和注意事项 10 1.9  分布式与并发运算关系 11 1.10 Linux和Window多并发可以采

【C++标准库】并发

高级接口async()和future /* The following code example is taken from the book * "The C++ Standard Library - A Tutorial and Reference, 2nd Edition" * by Nicolai M. Josuttis, Addison-Wesley, 2012 * * (C) Copyright Nicolai M. Josuttis 2012. * Permission

Day4 - 迭代器&生成器、装饰器、Json & pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

装饰器、生成器、迭代器

装饰器的前奏 装饰器:本质是函数 功能:就是装饰成其他函数  就是为其他函数添加附加功能的 高阶函数+嵌套函数=装饰器 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 总结一句话:装饰器对被装饰的函数是完全透明的 实现装饰器的只是储备: 1.函数名即"变量"   将函数体赋值给变量   和内存回收机制一样 2.高阶函数 2.1.把函数名作为实参传递给形参(可返回被修饰函数的地址)(不修改源代码的情况可添加新的功能) 2.2返回值中包含函数地址(不修改函数的调