Skip to content

多线程命名共享对象及常用多线程同步方式的实现。

Notifications You must be signed in to change notification settings

xinyang-go/UltraMultiThread

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ultra Multi-Thread

本项目旨在通过命名共享对象的方式,便捷化和模块化多线程编程。同时提供各类常用多线程同步功能,对标准库进行二次封装。代码header only,但会依赖部分第三方库作为辅助功能。


针对多线程编程的几个痛点:

  • 共享数据直接使用全局变量:代码不具有良好的模块化结构,文件依赖关系繁杂。
  • 共享数据使用堆上动态分配对象:shared_ptr在各个函数中层层传递,代码结构容易混乱。
  • 标准库只有较底层的线程同步库:常用的高级同步方式总是要造轮子。

使用命名共享对象的方式,省去shared_ptr的层层传递,同时不会像直接使用全局对象那样是的代码依赖繁杂。命名共享对象,通过对象类型和对象名称唯一确定一个共享对象,通过字符串哈希表来寻找对应的共享对象。


常用多线程同步功能:

  • 发布订阅模式(配合boost.python导出python模块,可以更好的实现模块化和插件化)
  • 线程条件休眠与唤醒

主要功能和函数的使用可以查看example

About

多线程命名共享对象及常用多线程同步方式的实现。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published