1 Star 0 Fork 148

冲锋的羊驼 / CsGo

forked from hamasm / CsGo 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
doc.md 7.48 KB
一键复制 编辑 原始数据 按行查看 历史
hamasm 提交于 2021-01-23 09:55 . no message

调度器

work_service

    一级调度,使用post将任务提交给一个单事件队列,启用一个或多个线程执行run函数,事件队列中的任务将被并行执行。这个类可用来执行一些无序任务,类似于线程池。

work_engine

    对work_service的多线程封装,设置好线程数和优先级,直接开启run执行即可。不用另外开启线程执行work_service.run()。

shared_strand

    二级调度,使用post将任务提交给一个双缓冲事件队列,内部将事件一个接一个的按序抛给Task执行,只有上一个任务完成,才开始下一个任务,这样尽管任务可能被分派到不同的线程中,但所执行的任务彼此也将是线程安全的。

work_strand

    继承自shared_strand,只不过将任务抛给work_service执行。

control_strand

    继承自shared_strand,只不过将任务抛给Control控件,任务将在UI线程中执行。这个对象一个进程只能创建一个.

generator

    任务执行实体,不同于Thread的抢占式调度,由shared_strand协作式调度运行。所有依赖同一个shared_strand的generator彼此将是线程安全的。

go

    创建并立即开始运行一个generator。

tgo

    创建并立即开始运行一个generator,并返回generator对象。

make

    创建一个generator但不立即运行。

run

    开始运行一个generator。

stop

    给generator发送一个中止操作,generator内部流程收到后自行处理。

suspend

    给generator发送一个挂起操作。

resume

    给generator发送一个挂起恢复操作。

lock_stop

    与unlock_stop成对出现,lock后generator将延时接收stop操作,只有unlock_stop后才能接收到stop。

lock_suspend

    与unlock_suspend成对出现,lock后generator将延时接收suspend,只有unlock_suspend后才能接收到suspend。

lock_shield

    与unlock_shield成对出现,lock后generator将延时接收suspend/stop操作,只有unlock_shield后才能接收到stop/suspend。

chan_send

    执行chan.send()操作。

chan_timed_send

    执行chan.timed_send()操作。

chan_try_send

    执行chan.try_send()操作。

chan_receive

    执行chan.receive()操作。

chan_timed_receive

    执行chan.timed_receive()操作。

chan_try_receive

    执行chan.try_receive()操作。

select

    一次选择一个可立即操作的chan进行send/recv。

sleep

    延时运行一小会。

send_task

    发送一个任务到Task中,完成后返回,主要用来执行耗时算法。

send_service

    发送一个任务到work_service中,完成后返回,主要用来执行耗时算法。

send_strand

    发送一个任务到shared_strand中,完成后返回,主要用来串行耗时算法。

send_control

    发送一个任务到shared_control中,完成后返回,主要用来在非control_strand调度的generator中操作UI,或弹出模态对话框。

wait_group

    用来给任务计数,然后等待所有任务结束。

add

    添加一个任务计数。

done

    结束一个任务计数.

wait

    等待所有任务计数被清零。

async_wait

    异步等待所有任务计数被清零。

cancel_wait

    中止当前的async_wait操作。

wait_gate

    设置一个信号关卡,当计数满足后执行一个操作,然后开始接下来的任务。

enter

    开始一个计数等待,当计数满足且一个操作完成后,然后开始接下来的任务。

async_enter

    开始一个异步计数等待。

cancel_enter

    取消async_enter等待。

children

    child任务组,务必在generator上下文中创建和执行操作,且有效的管理内部的child,否则将造成泄漏,不然将等到generator被stop时才能清空。

stop

    中止一个或多个child任务。

wait

    等待一个或多个child任务结束。

timed_wait

    超时等待一个或多个child任务结束。

wait_any

    等待任意一个child任务结束。

timed_wait_any

    超时等待任意一个child任务结束。

wait_all

    等待所有child任务结束。

timed_wait_all

    超时等待所有child任务结束。

child

    继承自generator,由children创建的子任务,生命周期将受上级generator管理。

chan

    用于generator之间的消息通信,分无缓存(nil_chan)、有限缓存(limit_chan)、无限缓存(unlimit_chan)、过程调用(csp_chan)四种类型。

send

    发送消息,阻塞等待,成功后返回。

try_send

    尝试发送消息,不阻塞等待,立即返回。

timed_send

    尝试发送消息,超时阻塞等待,成功或过期后返回。

receive

    接收消息,阻塞等待,成功后返回。

try_receive

    尝试接收消息,不阻塞等待,立即返回。

timed_receive

    尝试接收消息,超时阻塞等待,成功或过期后返回。

close

    关闭chan。

cancel

    取消当前chan中等待的所有操作。

invoke

    在csp_chan中执行一次过程调用,得到结果后返回。

try_invoke

    在csp_chan中尝试执行一次过程调用,得到结果或失败后返回。

timed_invoke

    在csp_chan中超时执行一次过程调用,得到结果或过期后返回。

wait

    在csp_chan中等待一次过程调用,完成后返回。

try_wait

    在csp_chan中尝试等待一次过程调用,完成或失败后返回。

timed_wait

    在csp_chan中超时等待一次过程调用,完成或超时后返回。

async_timer

    受shared_strand调度的定时器,所有操作只能在该shared_strand中进行。

timeout

    开始一个计时操作。

deadline

    使用终止时间,开始一个计时操作。

interval

    开始一个周期性的定时操作。

restart

    如果当前计时还未结束,将重新开始计时。

advance

    如果当前计时还未结束,将提前完成计时。

cancel

    如果当前计时还未结束,将中止计时。

C#
1
https://gitee.com/Coder_Zr/CsGo.git
git@gitee.com:Coder_Zr/CsGo.git
Coder_Zr
CsGo
CsGo
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891