- 主题:c/c++的开发人员是不是越来越少了?
看情况。
我协程+进程,协程+线程的方案都用过。
前者很适合 web 服务器,在 master 里面 bind() 端口后,每个 slave 进程都 accept() 那个 fd.
后者更复杂一些。master 线程负责 accept() 网络连接,然后传递给 slave 线程处理。因为共享了内存,所以不止可以传递 fd,还可以传递大块数据。
不管是哪种情况,协程都不会被随意调度到另外一个线程进程去。而是由程序员自行控制的。比如某个线程里面的协程都是专门处理计费的,另一个线程里面的协程都是处理日志合并的。
【 在 littleSram (littleSram) 的大作中提到: 】
: 放弃多核,一个进程只有一个线程,是吗?
--
FROM 140.224.34.*
我明白了,你是通过架构设计,用类似微服务的形式拆分业务。这样多核和协程的好处就可以兼得了
是这样吗
【 在 hgoldfish 的大作中提到: 】
: 看情况。
: 我协程+进程,协程+线程的方案都用过。
: 前者很适合 web 服务器,在 master 里面 bind() 端口后,每个 slave 进程都 accept() 那个 fd.
: ...................
--
FROM 111.203.35.*
我的方案是多线程协程,协程在线程间跳来跳去。
线程也在协程间跳来跳去。
线程池+每连接一个协程。
所以,协程锁非常困难,规定了线程锁不得跨越IO。
【 在 hgoldfish 的大作中提到: 】
: 不支持协程在多个线程上执行就行了。
: 你看 nodejs 和 python 都是单线程的。
:
--
FROM 221.221.53.*
这个是不是和goroutine差不多了多对多
【 在 ylh1969 的大作中提到: 】
: 我的方案是多线程协程,协程在线程间跳来跳去。
: 线程也在协程间跳来跳去。
: 线程池+每连接一个协程。
: ...................
--
FROM 61.148.245.*
我不知道。
我这个是交易中间件的服务器框架。
【 在 littleSram 的大作中提到: 】
: 这个是不是和goroutine差不多了多对多
--
FROM 221.221.53.*
这样的构造,协程锁非常困难。所以,用于客户端间没啥联系的场合,如交易中间件。如果客户端间联系紧密,如游戏,P2P应用等,就不太适合。
【 在 littleSram 的大作中提到: 】
: 这个是不是和goroutine差不多了多对多
--
FROM 221.221.53.*
我也只会c啊
【 在 flyren911 的大作中提到: 】
: c和c++一定要放一起吗?只会c不会c++,感觉会c++的都是大神。
--
FROM 58.34.40.*
本来就不像啊,c啥都要自己写
c++能调用好多接口的
【 在 ylh1969 的大作中提到: 】
: 学呗。不过C++越来越不像C了。
--
FROM 58.34.40.*
不是吧,目前会这个的,也很难找到工作啊。
【 在 vanish 的大作中提到: 】
: 市场上想找个这个背景的好困难
--
FROM 114.246.100.*
协程之间没有什么要通信的,或者说,并不比多线程多。只有go那个落后实现,需要channel通信
【 在 hgoldfish 的大作中提到: 】
: 单纯的 coroutine 没什么用。建议你看看其它语言,比如 python, rust, go 对 corotuine 的使用。在 coroutine 上面还有很多内容要做。比如事件循环和 coroutine 之间的通讯 lock, event, queue 等等。
: 单纯的 corotuine 有个地方很好用,就是模拟 python 和 javascript 的 yield:
: void range(shared_ptr<int> value, coroutine *main)
: ...................
--
FROM 123.116.196.*