谁能告诉我boost::signals
插槽是同步调用还是异步调用?
例如我有这段代码:
struct Hello
{
void operator()() const
{
std::cout << "Hello ";
}
};
struct World
{
void operator()() const
{
std::cout << " world!" << std::endl;
}
};
boost::signal<void ()> sig;
sig.connect(Hello());
sig.connect(World());
sig();
cout << "Foo";
执行线程是如何工作的?执行是等待Hello()
并World()
执行,然后"Foo"
打印出来还是异步调用它们(打印“Foo”并以未定义的顺序调用Hello()
和World()
执行)?