- 主题:协程或线程库好写吗?
【 在 hgoldfish 的大作中提到: 】
: 协程切换分为三步:1. 保存当前协程的寄存器 2. longjmp 3. 恢复目标协程的寄存器
: longjmp 只是其中一步,所以不能简单地用于实现协程。
: swapcontext() 是 unix 通用(但android不实现),但问题是会陷入内核,效率不高。SwitchToFiber() 不清楚,Windows 接近微内核,估计 SwitchToFiber() 不会陷入内核。
: ...................
网络方面剥离qt才能受欢迎,虽然我也经常用qtsql,qtcore。
--
FROM 171.221.82.*
【 在 javaboy 的大作中提到: 】
: 他的库依赖qt的signal slot机制,也就是需要moc才能用的。所以剥离不了qt。
: 不过澄清一下,我觉得qt的moc很好,c++标准里至今不提供类似功能实在太遗憾了。
:
moc 其实破环了语法结构,signal slot机制可以自己写事件循环啊,而且qt的信号槽太重,基本把类都反射了,处理的事件太多,效率不怎么样。
--
FROM 171.221.82.*
【 在 javaboy 的大作中提到: 】
: moc可以看作是一个比较自洽的RTTI,不像标准里的RTTI那么残废就是了。这个功能在对脚本语言做接口时极其有用的。
: 说句不好听的,无数C/C++项目其实都用了各自的方法山寨moc。有些项目用模板,有些项目用宏,有些项目用shell/python,有些项目用autotools,有些项目结合以上几种。。就是因为C++本身缺少moc这个工具。
: 觉得信号槽太重的人,不知道你们用不用node、golang啥的。node的对象模型和golang的channel要重得多了。。。
: ...................
node 脚本语言,go有gc,跨语言类型比较没有意义。c++20出来后自带协程,go的优势会会越来越不行。c++确实缺少一个动态代理机制,应该从语言级别实现。
--
FROM 171.221.82.*