什么是协程
协程是程序的一个组件,一个程序中可以包含多个协程,就好比一个进程中包含多个线程,可以对比一下协程与线程的区别
协程和线程的区别
线程之间是独立的,可以上下文切换,协程之间也是独立的,支持上下文切换,但是线程的上下文切换不是用户来控制,而是交给CPU决定;协程的上下文切换是由协程控制,也就是说,协程的切换是由用户控制。
协程的优势
- 协程的切换由协程自己控制,用户可以选择性的切换,避免无意义的切换。有些协程耗时耗能,没有执行的意义,这时候使用协程控制再好不过。
协程的使用Lua语言(coroutine)
-
coroutine.create() --创建一个协程
-
coroutine.yield() --挂起一个协程
-
coroutine.resume() --唤醒一个协程
-
lua中协程中通过yield和resume进行信息交换