API(九)基于协程的并发编程SDK

一   基于协程的并发编程SDK

场景: 收到一个请求会'并发发起'多个请求,使用openresty提供的'协程'

说明: 这个是'高级'课程,如果'不理解'可以'先跳过'

遗留: APSIX和Kong'深入理解'openresty

标准lua的协程

①  早期提供的轻量级协程SDK  ngx.thread

API(九)基于协程的并发编程SDK_第1张图片

ngx.thread.spawn、ngx.thread.wait、ngx.thread.kill介绍

ngx.thread轻量级线程

openresty协程使用注意事项

  • ngx.thread.spawn
  • ngx.thread.wait
  • ngx.thread.kill

API(九)基于协程的并发编程SDK_第2张图片

②   openresty封装协程方法

  • coroutine.create
  • coroutine.resume
  • coroutine.yield
  • coroutine.wrap
  • coroutine.running
  • coroutine.status
说明: 常'用在'rewrite_by_lua*, access_by_lua*, content_by_lua*阶段,'不局限'

API(九)基于协程的并发编程SDK_第3张图片 

案例'讲解'

API(九)基于协程的并发编程SDK_第4张图片 

 

API(九)基于协程的并发编程SDK_第5张图片

③  多协程的概念

lua-resty-lock

API(九)基于协程的并发编程SDK_第6张图片

  • new
  • lock
  • unlock
  • expire

lua-resty-lock在分布式缓存中的应用 

 

你可能感兴趣的:(Openresty,lua-resty-lock,coroutine)