易语言源码主要功能:定时任务、计时、日志、协程池、协程锁、同步事件、文件操作
基本概念
。协程是运行于线程中的轻量级调度单位.
? 协程之于线程,类似于线程之于进程
-个进程中可以存在多个线程,
一个线程中可以存在多个协程。
。协程所在的线程一般被称为调度线程。
。协程发生 io 阻塞或调用 sleep 等操作时,调度线程会挂起此协程。
。协程挂起时,调度线程会切换到其他等待中的协程运行.
。协程的切换是在用户态进行的,比线程间的切换更快。
协程非常适合写网络程序,可以实现同步的编程方式,不需要异步回调,大大减经了程序员的思想负担。
co 协程库实现的是一种类似golang 的协程,有如下特性:
支持多线程调度,默认线程数为系统 CPU 核数。
。共享栈,同一线程中的协程共用若干个栈(大小默认为 1MB),内存占用低,Linux 上的测试量示 1000 万协程只用了 2.8G 内存
(仅供参考)。
。协程创建后,始终在同一个线程中运行,而不会切换到其他线程,
?各协程之间为平级关系,可以在任何地方(包括在协程中)创建新的协程。
cO 协程库在linux,mac,windows 等平台,分别基于 epoll,kqueue, iocp 实现。
Co协程库中 context 切换相关的代码,取自ruki 的tbox,而tbox则参考了boost 的实现.
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系贝贝进行处理。本站默认解压密码:www.hibbba.com



评论(0)