所在的位置: C++ >> C++前景 >> C20协程

C20协程

北京皮肤病的医院 http://m.39.net/pf/a_4655748.html

像javaScript这样的协程函数,一看就知道怎么用:

但CPP的协程相对就要复杂一些,而且相关教程一般也只讲原理不谈实现(虽然逻辑说得很清楚,就是用不了)。

这里也简单说一下协程到底是什么,首先一个线程里面的程序是从上往下运行,如果中途遇到一个很耗时的计算,也一定是计算完了之后,才继续往下执行。为了解决这个问题C++与java都可以通过新开一个线程来解决,但每开辟一个线程都是要消耗CPU资源的,所以开多了反而会导致计算机卡顿。对于客户端虽然影响不大,但服务器每秒处理几万条用户请求,难道开几万个线程嘛,不现实(而且线程可以共享资源多人开发的时候会随便加锁,加完之后可能还会导致死锁等问题)。为了解决这些问题我们就需要用到协程,协程的工作原理就是可以暂停耗时的任务,先去把不耗时的任务完成,再去执行耗时的任务。

简单点说协程就是可以暂停任务,闲下来之后再让它运行(简单吧),还可以用别的线程来运行暂停下来的任务。

来一个简单的实例(注意:C++20才有协程库):




转载请注明:http://www.aierlanlan.com/cyrz/2272.html