日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

boost signals2 coroutine

發布時間:2025/3/21 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 boost signals2 coroutine 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

signals2 觀察者模式, 解耦模塊


class Button {typedef boost::signals2::signal<void (int x, int y)> OnClick; public:typedef OnClick::slot_type OnClickSlotType;// forward slots through Button interface to its private signalboost::signals2::connection doOnClick(const OnClickSlotType & slot);// simulate user clicking on GUI button at coordinates 52, 38void simulateClick(); private:OnClick onClick; };boost::signals2::connection Button::doOnClick(const OnClickSlotType & slot) {return onClick.connect(slot); }void Button::simulateClick() {onClick(52, 38); }void printCoordinates(long x, long y) {std::cout << "(" << x << ", " << y << ")n"; } //]int main() {Button button;button.doOnClick(&printCoordinates);//<span style="color:#FF0000;">這句。 否則就要將printCoordinates函數設置為Butoon類的成員、或者賦值給Button類的成員。</span>button.simulateClick();return 0; }

from: http://blog.csdn.net/vagrxie/article/details/5518130


后面工作中可以嘗試使用signals2.



關于coroutine,看了幾篇帖子

1) coroutine是用戶態的切換, 比線程切換輕量

2) 同步效率低; 異步需要N多回調,代碼邏輯切成碎片;coroutine讓邏輯集中、順暢。? 簡單類比jmp跳轉

3)stackless 與 stackful。? stackless的coroutine不能有棧變量(否則jmp回來的時候棧頂、寄存器等肯定已變了)。 stackful支持有棧變量(jmp回來會恢復現場?)

4)與異步比, 性能上有提升么?c++/boost::asio沒看到有用的。 (go、lua除外)




總結

以上是生活随笔為你收集整理的boost signals2 coroutine的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。