为什么 boost.asio 会在 linux 平台上使用 proactor

为什么 boost.asio 会在 linux 平台上使用 proactor,第1张

linux下boost asio并行开发:1.三种使用方式

1)single thread &&single io_service, 最简单, 性能最一般

2)multithread &&single io_service

3)io_service per thread. multi io_service.

这三个性能是依次递增的。

2.在使用ASIO时,io_servie应该尽量多,这样可以使其epoll_wait占用的时间片最多,这样可以最大限度的响应IO事件,降低响应时延。但是每个io_servie::run占用一个线程,所以io_servie最佳应该和CPU的核数相同。

3.io_service是一个工作队列的模型。在使用过程中一般有如下几个需要注意的地方:

run函数在io事件完成后会退出,导致后续基于该对象的异步io任务无法执行。

由于io_service并不会主动常见调度线程,需要我们手动分配,常见的方式是给其分配一个线程,然后执行run函数。但run函数在io事件完成后会退出,线程会终止,后续基于该对象的异步io任务无法得到调度。

解决这个问题的方法是通过一个asio::io_service::work对象来守护io_service。这样,即使所有io任务都执行完成,也不会退出,继续等待新的io任务。

boost::asio::io_service io

boost::asio::io_service::work work(io)

io.run()

打开synaptic, 找到libboost-all-dev, 安装即可。

安装后可以查看boost相关库,在/usr/lib/目录下

如:/usr/lib/libboost_date_time.a /usr/lib/libboost_math_tr1f-mt.a /usr/lib/libboost_serialization-mt.so

/usr/lib/libboost_date_time-mt.a/usr/lib/libboost_math_tr1f-mt.so /usr/lib/libboost_serialization.so

/usr/lib/libboost_date_time-mt.so /usr/lib/libboost_math_tr1f.so/usr/lib/libboost_serialization.so.1.42.0

/usr/lib/libboost_date_time.so /usr/lib/libboost_math_tr1f.so.1.42.0 /usr/lib/libboost_signals.a

/usr/lib/libboost_date_time.so.1.42.0 /usr/lib/libboost_math_tr1l.a /usr/lib/libboost_signals-mt.a

/usr/lib/libboost_filesystem.a /usr/lib/libboost_math_tr1l-mt.a /usr/lib/libboost_signals-mt.so

/usr/lib/libboost_filesystem-mt.a /usr/lib/libboost_math_tr1l-mt.so /usr/lib/libboost_signals.so

/usr/lib/libboost_filesystem-mt.so /usr/lib/libboost_math_tr1l.so/usr/lib/libboost_signals.so.1.42.0

/usr/lib/libboost_filesystem.so /usr/lib/libboost_math_tr1l.so.1.42.0 /usr/lib/libboost_system.a

/usr/lib/libboost_filesystem.so.1.42.0 /usr/lib/libboost_math_tr1-mt.a /usr/lib/libboost_system-mt.a

/usr/lib/libboost_graph.a /usr/lib/libboost_math_tr1-mt.so /usr/lib/libboost_system-mt.so

/usr/lib/libboost_graph-mt.a/usr/lib/libboost_math_tr1.so /usr/lib/libboost_system.so

/usr/lib/libboost_graph-mt.so /usr/lib/libboost_math_tr1.so.1.42.0 /usr/lib/libboost_system.so.1.42.0

/usr/lib/libboost_graph.so /usr/lib/libboost_prg_exec_monitor.a /usr/lib/libboost_test_exec_monitor.a

/usr/lib/libboost_graph.so.1.42.0 /usr/lib/libboost_prg_exec_monitor-mt.a /usr/lib/libboost_test_exec_monitor-mt.a

复制代码头文件在/usr/include/boost下gnuser@ubuntu:~$ ls /usr/include/boost/

accumulators date_time.hpp io_fwd.hpp pointer_cast.hpp spirit

algorithmdetailiostreams pointer_to_other.hpp spirit.hpp

aligned_storage.hpp dynamic_bitsetis_placeholder.hpp pool statechart

any.hpp dynamic_bitset_fwd.hppiterator preprocessor static_assert.hpp

archive dynamic_bitset.hppiterator_adaptors.hpp preprocessor.hpp strong_typedef.hpp

array.hppenable_shared_from_this.hpp iterator.hpp program_optionsswap.hpp

asio exception lambda program_options.hppsystem

复制代码boost库命名:

比如libboost_regex-vc71-mt-d-1_34.lib,

lib: 库前缀,除了windows平台,都是这个前缀

boost_regex: boost的regex库

-mt 多线程支持

-d debug版本

快手网红都用创新AUDIGY 5、德国坦克Aureon傲龙51PCI、华硕Xonar D-Kara、节奏坦克HiFier Serenade USB小、森然播吧II代 。

声卡也可以叫做音频接口,声卡可以将其分类成外置声卡、内置声卡和板载声卡。我们的电脑主板本身会配置板载声卡,但是如果你是要用来录音直播,板载声卡是达不到录音K歌的要求的,会出现延迟、杂音和声音失真的问题。

森然播吧II代声卡兼容各大K歌平台,如唱吧、全民K歌、酷狗k歌、酷我k歌等国内主流的K歌软件,另外微信、QQ等语音聊天也是可以使用的,主流的短视频平台,如抖音、快手、火山小视频、美拍等都支持。同时也兼容主流的直播APP,这里就不一一列举了。

在唱电音的时候,先搜一下歌曲的基调,可以这百度搜索:XXX歌曲是什么基调,然后吧声卡调到电音模式,按基调按键选择相应的基调然后演唱。森然播吧二代电音版声卡, *** 作简单 容易上手,对普通耳机的麦克风兼容友好,效果清晰,内置的场景效果和气氛音效高效便捷,让你的直播更出色,K歌更有魅力。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6227955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存