Delphi 版 Coroutines(协程)

时间:2022-12-28 03:17:10
【文件属性】:

文件名称:Delphi 版 Coroutines(协程)

文件大小:22KB

文件格式:ZIP

更新时间:2022-12-28 03:17:10

Delphi Coroutines

协程,类似线程,非阻塞式编程(像同步编写一样),在用户态直接对线程进行管理,使用挂起当前上下文替代阻塞,从而可以复用被delay的线程,大量减少了线程资源浪费。这里提供的是 Delphi 版。


【文件预览】:
DCoroutine-master
----LICENSE(16KB)
----src()
--------coroutine.pas(12KB)
--------SocketStub.pas(9KB)
----samples()
--------addto()
--------tcp()
----.gitignore(2KB)
----README.md(42B)

网友评论

  • coroutine演示, 忽略了很多细节, 比如: 只保存了8个通用寄存器 没有保护SEH异常处理链 只使用一个操作系统线程 默认只有全局就绪队列有锁(Interlock方式), 因为可能有多线程并发读写 waiting和running队列没有锁, 因为只有一个线程访问。 但如果扩展为使用多个操作系统线程运行coroutine, 这两个队列也是要锁的。 coroutine_current使用了遍历running队列的方法查找coroutine。为了高性能, running队列需要改为红黑树之类的数据结构 coroutine yield时都是先切回调度线程, 可以优化为coroutine yield时 直接转到其它coroutine执行