Windowns核心编程 - 纤程

     纤程的出现是为了将UNIX应用程序移植到Windows,纤程是在用户模式下实现的,所以内核无法对纤程进行调度,只能根据定义的算法对纤程进行调度。一个线程可以包含一个或多个纤程,内核会对线程进行调度,但线程一次只能执行一个纤程的代码。下面是一些纤程的相关函数及用法。

 1)使用纤程的第一个步骤是将一个已有的线程转换为一个纤程,使用函数 :PVOID ConvertThreadToFiber(PVOID pvParam); 如果 纤程需要执行浮点运算的,需要调度函数 : PVIOD ConvertThreadToFiber(PVOID pvParam, DWORD dwFlag),否则会导致数据被破坏.

2)创建一个纤程,函数:PVOID CreateFiber( DWORD dwStackSize , PFIBER_START_ROUTINE pfnStartAddress, PVOID pvParam);

3)上述2)函数的pfnStartAddress是指定纤程函数的地址, 实现纤程函数原型: VOID WINAPI FiberFunc(PVOID pvParam);

4)在一个线程中,同一时刻只能执行一个纤程,为了让新的纤程执行,可调用函数 :VOID SwitchToFiber(PVOID pvFiberExecutionContext);

5)销毁纤程函数 :VOID DeleteFiber(PVOID pvFiberExecutionContext);

6)获取正在运行纤程的执行上下文函数 : PVOID GetCurrentFiber();或者: PVOID GetFiberData()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值