We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在master.cpp中的waitMapTask() ,作者的定时器方式是构造一个线程,让线程执行等待时间的任务:
waitMapTask()
pthread_create(&tid, NULL, waitTime, &op); pthread_join(tid, &status); //join方式回收实现超时后解除阻塞
如果这样阻塞,和单线程的效率似乎是差不多的(甚至可能更差,涉及到线程上下文切换)?
因为在执行waitTime() 的时候,主线程就会一直阻塞。
waitTime()
我的想法是用epoll或者poll来通过定时事件触发(暂未实现),请问这样会不会更好呢?
The text was updated successfully, but these errors were encountered:
我觉得你说的没问题,我当时没考虑效率,本身后来也想改但是老是偷懒,后面的lab也有一些很多可以优化的地方。就是用epoll监听定时任务,timerfd_create应该能创建定时任务,然后用epoll监听定时事件,应该没问题。顺便说一嘴,我现在好久没碰cpp了,gpt了一下发现有这个timerfd_create系统调用
Sorry, something went wrong.
好的,非常感谢,确实如果从头开始做这个连框架和测试代码都没有的项目实在是太困难,有作者分享作为参考的确能少走很多弯路。
加油
之前读源码没仔细读,并不会阻塞主线程,因为该计时线程在 waitMap() 函数里中已经detach了,只会阻塞单独的计时线程。
waitMap()
No branches or pull requests
在master.cpp中的
waitMapTask()
,作者的定时器方式是构造一个线程,让线程执行等待时间的任务:如果这样阻塞,和单线程的效率似乎是差不多的(甚至可能更差,涉及到线程上下文切换)?
因为在执行
waitTime()
的时候,主线程就会一直阻塞。我的想法是用epoll或者poll来通过定时事件触发(暂未实现),请问这样会不会更好呢?
The text was updated successfully, but these errors were encountered: