boost::fibers::buffered_channel是一个Fiber通道,可以用于Fiber之间的消息传递。本文将介绍如何使用boost::fibers::buffered_channelstd::string来进行消息传递,并提供测试程序。
源代码如下:
#include <iostream>
#include <boost/fiber/all.hpp>
using namespace boost::fibers;
int const items = 5;
int const value = 10;
void sender(buffered_channel<std::string>& ch) {
for (int i = 0; i < items; ++i) {
std::string s = "message " + std::to_string(i);
std::cout << "sending: " << s << std::endl;
ch.push(s);
fiber::yield();
}
}
void receiver(buffered_channel<std::string>& ch) {
for (int i = 0; i < items; ++i) {