![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++多线程
Sahm5k
这个作者很懒,什么都没留下…
展开
-
c++线程创建调用类中函数
在编写EventloopThread类中,需要在类中创造新线程并调用类中的函数,却发现pthread_create函数报错,参数不匹配。 例子如下: class EventloppThread{ public: void* func (void*); void create_pthread(); } void* EventloopThread::func(void*){}//省略实现 void E...原创 2020-05-06 19:24:06 · 1444 阅读 · 0 评论 -
linux-线程池实现
线程池-pthread_pool 含义:顾名思义,线程池是集中管理多个线程的工具,在其中包含着多个线程的存储以及对线程任务的处理。 源代码: 1)任务序列: 通过回调函数call_back指定线程所要执行的任务。 在线程池中用struct job*head,tail链接形成任务序列。 struct jobs{ void* (*call_back)(void* i); void*...原创 2020-02-15 16:09:52 · 95 阅读 · 0 评论 -
spurious wakeups(虚假唤醒)
虚假唤醒(spurious wakeup)在采用条件等待时,我们使用的是 while(条件不满足){ condition_wait(cond, mutex); } 而不是: If( 条件不满足 ){ Condition_wait(cond,mutex); } 这是因为可能会存在虚假唤醒”spurious wakeup”的情况。  ...转载 2020-02-11 11:40:55 · 347 阅读 · 0 评论 -
多线程
注意事项 1.不要在类的构造过程中暴露this指针,有可能会调用一个未构造好的半成类。 2.mutex锁不能用于析构函数,当函数析构的时候mutex锁被破坏,可能会导致其他线程(需要mutex锁)永久阻塞。 3.shared_ptr实质 多一个中间量,如果没有这个中间量pointer,sp1、sp2直接指向object,一旦delete sp1,sp2便成为空悬指针,使用未知的sp2指针会造成内存...原创 2019-09-27 16:44:55 · 88 阅读 · 0 评论