成员函数中std:Thread初始化

更新时间:2023-06-30 10:49:36 阅读: 评论:0

成员函数中std:Thread初始化
⽬前对c++多线程理解还不是很深⼊,主要是在看《c++并发编程》,在书中初始化⼀个线程:
void do_some_work();
std::thread my_thread(do_some_work);
这个也很好理解,在初始化的时候传⼊do_some_work函数的指针。
tuo
但是在看ceph代码看到Timer类中的std::Thread 初始化⽅式有点不理解。
杭州英语口语培训哪家好55    class timer {
........
112      void timer_thread() {
113        unique_lock l(lock);
114        while (!suspended) {
115          typename TC::time_point now = TC::now();
116
117          while (!pty()) {
118            auto p = schedule.begin();
119            // Should we wait for the future?
120            if (p->t > now)
121              break;
爱护公物演讲稿
122
123            event& e = *p;
124            a(e);
125            a(e);
same是什么意思
126
被增长127            // Since we have only one thread it is impossible to have more
128            // than one running event
129            running = &e;
130
131            l.unlock();
132            e.f();
133            l.lock();
印建坤134
135            if (running) {
136              running = nullptr;财务会计和管理会计
137              delete &e;
138            } // Otherwi the event requeued itlf
139          }
ball valve
chopsticks怎么读140
141          if (pty())
142            cond.wait(l);
143          el
144            cond.wait_until(l, schedule.begin()->t);
145        }
146      }
147
bowl的音标
148  public:
149      timer() {
150        lock_guard l(lock);
151        suspended = fal;
152        thread = std::thread(&timer::timer_thread, this);
153      }
..........
其中在timer的构造函数中std::thread的参数不仅有timer_thread的指针还传⼊了this指针。完全不理解为什么需要这个this指针啊。后来请教⼀下C++⼤神才理解,每个类的成员函数有⼀个隐藏的this指针形参,所以这⾥的this指针是timer_thread的形参。
149      timer() {
150        lock_guard l(lock);
151        suspended = fal;
152        thread = std::thread(&timer::timer_thread, this); 153      }

本文发布于:2023-06-30 10:49:36,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/162528.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指针   理解   函数   隐藏
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图