当前位置: 首页 > news >正文

西安搬家公司电话号码seo博客

西安搬家公司电话号码,seo博客,用台式机做网站服务器,做网站建设有哪些公司协程,也叫微线程,多个协程在逻辑上是并发的,实际并发由用户控件。 在windows上引入了纤程(fiber)。 WinBase.h 中函数原型 #if(_WIN32_WINNT > 0x0400)// // Fiber begin //#pragma region Application Family or OneCore Family or Game…

协程,也叫微线程,多个协程在逻辑上是并发的,实际并发由用户控件。
在windows上引入了纤程(fiber)。
WinBase.h 中函数原型

#if(_WIN32_WINNT >= 0x0400)//
// Fiber begin
//#pragma region Application Family or OneCore Family or Games Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES)#define FIBER_FLAG_FLOAT_SWITCH 0x1     // context switch floating pointWINBASEAPI
VOID
WINAPI
SwitchToFiber(_In_ LPVOID lpFiber);WINBASEAPI
VOID
WINAPI
DeleteFiber(_In_ LPVOID lpFiber);#if (_WIN32_WINNT >= 0x0501)WINBASEAPI
BOOL
WINAPI
ConvertFiberToThread(VOID);#endifWINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
CreateFiberEx(_In_     SIZE_T dwStackCommitSize,_In_     SIZE_T dwStackReserveSize,_In_     DWORD dwFlags,_In_     LPFIBER_START_ROUTINE lpStartAddress,_In_opt_ LPVOID lpParameter);WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
ConvertThreadToFiberEx(_In_opt_ LPVOID lpParameter,_In_     DWORD dwFlags);#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */
#pragma endregion#pragma region Desktop Family or OneCore Family or Games Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES)WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
CreateFiber(_In_     SIZE_T dwStackSize,_In_     LPFIBER_START_ROUTINE lpStartAddress,_In_opt_ LPVOID lpParameter);WINBASEAPI
_Ret_maybenull_
LPVOID
WINAPI
ConvertThreadToFiber(_In_opt_ LPVOID lpParameter);#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES) */
#pragma endregion//
// Fiber end
//

一个简单的例子

#include <iostream>
#include <Windows.h>LPVOID mainFiber,workFiber;int i;void fiberProc(LPVOID lpFiberParameter)
{for(i = 0;i < 10; ++i){SwitchToFiber(mainFiber);}
}int main(int argc,char** argv,char** env)
{mainFiber = ConvertThreadToFiber(NULL);workFiber = CreateFiber(1024,fiberProc,NULL);SwitchToFiber(workFiber);std::cout << i << std::endl;SwitchToFiber(workFiber);std::cout << i << std::endl;DeleteFiber(workFiber);ConvertFiberToThread();return 0;}

windows 上Fiber的调度需要用户自己控制
简单做一个协程调度

#include <iostream>
#include <Windows.h>
#include <list>
#include <functional>using co_proc = std::function<void(void*)>;void __co_proc(LPVOID lpParam);static int ids = 0;class scheduler;
class corountine
{
public:co_proc proc_;void* param_;corountine(co_proc proc,void* param):proc_(proc), param_(param),isfinished(false),id(++ids){this->fiber = CreateFiber(1024,__co_proc,this);}virtual ~corountine(){DeleteFiber(this->fiber);}LPVOID fiber;bool isfinished;int id;scheduler* sch;
};class scheduler
{std::list<corountine*> cos_;
public:scheduler(){mainFiber = ConvertThreadToFiber(NULL);}virtual ~scheduler(){ConvertFiberToThread();}void push_corountine(corountine* co){co->sch = this;cos_.push_back(co);}void run(){while(!cos_.empty()) {auto* co = cos_.front();cos_.erase(cos_.begin());if (!co->isfinished) {SwitchToFiber(co->fiber);}if (!co->isfinished) {cos_.push_back(co);} else {delete co;}}}void yield(){SwitchToFiber(mainFiber);}LPVOID mainFiber;};void __co_proc(LPVOID lpParam)
{corountine* co = (corountine*)lpParam;co->isfinished = false;co->proc_(co->param_);co->isfinished = true;SwitchToFiber(co->sch->mainFiber); // 一定要加上这句,不然主线程会结束
}int main(int argc,char** argv,char** env)
{scheduler sch;sch.push_corountine(new corountine([&](void* p){for (int i = 0;i < 7; ++i){std::cout << "i:"<<i<<std::endl;sch.yield();}},nullptr));sch.push_corountine(new corountine([&](void* p){for (int j = 0;j < 4; ++j){std::cout << "j:"<<j<<std::endl;sch.yield();}},nullptr));sch.run();return 0;}
http://www.hkea.cn/news/102555/

相关文章:

  • 宝山区建设用地事务所网站网络公司有哪些
  • 用sql做简单的博客网站大连谷歌seo
  • 新手怎么学做网站就业培训机构有哪些
  • magento网站建设搭建网站步骤
  • 营销网站如何实现差异化南京seo公司
  • 服务器托管是啥搜索引擎优化排名培训
  • 山西手机网站建设网址大全123
  • b2c平台有哪些平台网址新区seo整站优化公司
  • WordPress突然全站404网站如何添加友情链接
  • 复制别人网站做第一站seo短视频网页入口引流下载
  • 基层建设论文收录在哪个网站百度统计api
  • 购买主机可以做网站吗楚雄今日头条新闻
  • 深圳专业网站建设公司哪家好宁波网络营销公司
  • ps做电商网站流程图百度图片识别搜索引擎
  • 做电影网站程序好用武汉网站建设推广公司
  • 如何做b2c网站下列关于友情链接说法正确的是
  • 网站开发中网页上传seo在线网站推广
  • 网站建设报价流程免费培训网站
  • 聊城网站建设服务好最新网域查询入口
  • 一般网站建设流程有哪些步骤官方百度app下载安装
  • 档案网站建设的步骤八大营销方式有哪几种
  • 手机网站免费制作平台semseo
  • 周口市做网站小红书seo排名
  • 网站开始怎么做的ps培训
  • 去哪个网站找题目给孩子做保定百度首页优化
  • 五道口网站建设惠州seo外包服务
  • 如何查看网站是否备案企业宣传册
  • 好的网站建设公司排名互联网宣传推广
  • 上海买二手房做哪个网站好seo快速排名优化
  • 十大中国网站制作免费广告