SlideShare a Scribd company logo
1 of 37
Download to read offline
深⼊入理解协程
⼩小拿@果壳
2016.04.07
协程 == yield ?
⺫⽬目录
• 定义与背景 (为什么产⽣生)
• 理解协程的概念 (是什么)
• 协程的没落与复兴 (历史)
• 原型实现* in C (落实到程序)
• 效率、Python与Go (为什么重要)
协程 = coroutine
co- 英语的派⽣生词缀,能跟动词、名词、形容词相缀合,表⽰示
together, joint 等意思,也就是『⼀一起』
定义
• Coroutines are computer program components
that generalize subroutines for nonpreemptive
multitasking, by allowing multiple entry points for
suspending and resuming execution at certain
locations.
• Coroutines are well-suited for implementing
more familiar program components such as
cooperative tasks, exceptions, event loop,
iterators, infinite lists and pipes.
背景
• According to Donald Knuth, the term coroutine
was coined by Melvin Conway in 1958, after he
applied it to construction of an assembly
program.
编译器
理解协程的概念
调⽤用⽅方式
• subroutine: …a subroutine merely was an extension
of the computer hardware, introduced to save lines of
coding. (调⽤用/被调⽤用)
• coroutine: …as a team of programs, each member of
the team having a certain job to do. (协同/相互调⽤用)
• WIKI: Coroutines are computer program components
that generalize subroutines for nonpreemptive
multitasking, by allowing multiple entry points for
suspending and resuming execution at certain
locations. from TAOCP
调度⽅方式
• 协作式调度
• 抢占式调度
• WIKI: generalize subroutines for nonpreemptive
multitasking
执⾏行流程
多边扫描算法 multipass
• psychological difference
• time difference
• space difference
协程与多遍扫描的转换
协程与多遍扫描的转换
• ⽣生产者/消费者模式
• 后⾯面需要前⾯面扫描的统计信息
compare with multiple-pass
algorithm
Little old lady, riding a bus. "Little boy, can you tell
me how to get off at Pasadena Street?"
Little boy. "Just watch me, and get off two stops
before I do."
(The joke is that the little boy gives a two-pass algorithm.)
from TAOCP
协程的没落与复兴
⾃自顶向下程序设计⽅方法
• top-down design ⾃自顶向下,逐步求精
• structured programming 结构化程序设计
• 过程调⽤用的⽅方式进⾏行流程控制
• 循序/选择/重复
• goto statement
⾃自顶向下程序设计⽅方法
Python
• 迭代器 iteratior
• ⽣生成器 generator
• …
• ⽣生产者/消费者
• 多线程/竟态同步/缓冲区
• 任务轻量/线程机制过于复杂
tornado
• C10K
• high concurrency
• select/poll/epoll
• event-driven
• callback
• async IO
async IO
callback hell
coroutine/yield
原型实现* in C
实现
让出yield / 恢复resume
实现
实现
再看定义
• Coroutines are computer program components
that generalize subroutines for nonpreemptive
multitasking, by allowing multiple entry points for
suspending and resuming execution at certain
locations.
• Coroutines are well-suited for implementing
more familiar program components such as
cooperative tasks, exceptions, event loop,
iterators, infinite lists and pipes.
效率、Python与Go
从效率的⾓角度看协程
Parallelism vs Concurrency
• 多线程
• 并发 Concurrency
• 并⾏行 Parallelism
Concurrency is about dealing with lots of things at once.
Parallelism is about doing lots of things at once.
— Rob Pike
Python
• 单线程
• GIL (Global Interpreter Lock)
All tasks working
within Python must
acquire the singular
GIL to legally
process, effectively
limiting all Python to
a single thread of
execution.
Go与并⾏行编程
⼀一个关键字 go
goroutine的调度
• M: Machine (OS thread)
• P: logical Processor
• G: Goroutine
并⾏行度 runtime.GOMAXPROCS(runtime.NumCPU())
Go与异步⾮非阻塞
在Go语⾔言中,如何让⼀一个⺴⽹网络连接使⽤用⾮非阻塞I/O?怎么对⺴⽹网络连接进⾏行异步读
写?
这⼏几个问题回答是:Go的⺴⽹网络程序不使⽤用异步操作,⼀一切操作都是同步的,每
个goroutine处理⼀一个连接。
在Go代码层⾯面,开发者看到的是使⽤用goroutine来进⾏行阻塞式读写,⽽而在Go的
内部实现中,则是利⽤用异步操作,通过对goroutine的调度来完成对事件的处
理。作为最⼩小的调度单位,goroutine之间是并发(可能⾮非并⾏行)执⾏行的。
『以同步的形式表达了异步的⾏行为』
写程序 = ⽤用程序语⾔言表达意图
协程带来了什么
Go通过协程统⼀一了异步、并发与并⾏行的表达
Python通过协程利⽤用了异步带来的效率提升
Go通过协程利⽤用了异步、并⾏行带来的效率提升
goroutine vs coroutine
在其他语⾔言中,⽐比如 Python、Lua或者C#中都有协程的概念。

goroutine 可以看做 coroutine 在 Go 中的实现,不过与通常意义的 coroutine
还是有两点不同:
• goroutine 意味着并⾏行;coroutine ⼀一般不是
• goroutine 通过 channel 来通信;coroutine 通过让出
yield 和恢复 resume 操作来通信
参考
Reference:
	 1	 https://en.wikipedia.org/wiki/Coroutine https://zh.wikipedia.org/wiki/%E5%8D%8F%E7%A8%8B↩

	 2	 Donald Knuth, The Art of Computer Programming, Volume 1. Addison-Wesley, ISBN 0-201-89683-4. Section
1.4.2 describes coroutines in the “pure” form.↩

	 3	 http://geek.csdn.net/news/detail/49827 计算机语⾔言协程的历史、现在和未来↩

	 4	 http://blog.chinaunix.net/uid-17299695-id-3059110.html epoll的⾼高效实现原理, https://www.zhihu.com/
question/20122137↩

	 5	 http://yanyiwu.com/work/2014/12/20/c-coroutine.html 谈谈并发编程中的协程↩

	 6	 http://demo.pythoner.com/itt2zh/ch5.html 异步Web请求↩

	 7	 http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html Simon Tatham, Coroutines in C↩

	 8	 http://searchsoftwarequality.techtarget.com/definition/structured-programming-modular-programming
structured programming(modular programming)↩

	 9	 https://segmentfault.com/a/1190000003063859 Linux IO模式及 select、poll、epoll详解↩

	 10	http://www.goinggo.net/2014/01/concurrency-goroutines-and-gomaxprocs.html Concurrency, Goroutines
and GOMAXPROCS↩

	 11	http://www.cnblogs.com/yjf512/archive/2012/07/19/2599304.html Golang runtime 浅析↩

	 12	https://www.zhihu.com/question/20862617 golang的goroutine是如何实现的↩

	 13	https://talks.golang.org/2012/waza.slide Concurrency is not Parallelism↩

	 14	http://ifeve.com/cpp-concurrency-vs-parallel/ C++11并发编程指南↩

	 15	http://wiki.jikexueyuan.com/project/the-way-to-go/14.1.html 并发、并⾏行和协程↩
END
justinli.ljt@gmail.com

More Related Content

What's hot

Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Koan-Sin Tan
 
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...Chris Fregly
 
FOSDEM2016 - Ruby and OMR
FOSDEM2016 - Ruby and OMRFOSDEM2016 - Ruby and OMR
FOSDEM2016 - Ruby and OMRCharlie Gracie
 
Compiler optimizations based on call-graph flattening
Compiler optimizations based on call-graph flatteningCompiler optimizations based on call-graph flattening
Compiler optimizations based on call-graph flatteningCAFxX
 
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Stefan Marr
 
Object oriented programming in 2014:Standard or Legacy?
Object oriented programming in 2014:Standard or Legacy?Object oriented programming in 2014:Standard or Legacy?
Object oriented programming in 2014:Standard or Legacy?mat f.
 
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"..."Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...Edge AI and Vision Alliance
 
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...PyData
 
Machine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite PreviewMachine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite PreviewModulabs
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineYusuke Izawa
 
a quick Introduction to PyPy
a quick Introduction to PyPya quick Introduction to PyPy
a quick Introduction to PyPyKai Aras
 
Understand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ ProcessorsUnderstand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ ProcessorsIntel® Software
 
DUSK - Develop at Userland Install into Kernel
DUSK - Develop at Userland Install into KernelDUSK - Develop at Userland Install into Kernel
DUSK - Develop at Userland Install into KernelAlexey Smirnov
 
PyPy
PyPyPyPy
PyPyESUG
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlowJeongkyu Shin
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL DebuggerEdward Willink
 
SWIG Hello World
SWIG Hello WorldSWIG Hello World
SWIG Hello Worlde8xu
 
Seattle useR Group - R + Scala
Seattle useR Group - R + ScalaSeattle useR Group - R + Scala
Seattle useR Group - R + ScalaShouheng Yi
 

What's hot (20)

Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Introduction to TensorFlow Lite
Introduction to TensorFlow Lite
 
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
Hands-on Learning with KubeFlow + Keras/TensorFlow 2.0 + TF Extended (TFX) + ...
 
FOSDEM2016 - Ruby and OMR
FOSDEM2016 - Ruby and OMRFOSDEM2016 - Ruby and OMR
FOSDEM2016 - Ruby and OMR
 
Compiler optimizations based on call-graph flattening
Compiler optimizations based on call-graph flatteningCompiler optimizations based on call-graph flattening
Compiler optimizations based on call-graph flattening
 
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?
 
Object oriented programming in 2014:Standard or Legacy?
Object oriented programming in 2014:Standard or Legacy?Object oriented programming in 2014:Standard or Legacy?
Object oriented programming in 2014:Standard or Legacy?
 
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"..."Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
 
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
 
Machine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite PreviewMachine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite Preview
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One Engine
 
a quick Introduction to PyPy
a quick Introduction to PyPya quick Introduction to PyPy
a quick Introduction to PyPy
 
Understand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ ProcessorsUnderstand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ Processors
 
An Introduction to PyPy
An Introduction to PyPyAn Introduction to PyPy
An Introduction to PyPy
 
Numba Overview
Numba OverviewNumba Overview
Numba Overview
 
DUSK - Develop at Userland Install into Kernel
DUSK - Develop at Userland Install into KernelDUSK - Develop at Userland Install into Kernel
DUSK - Develop at Userland Install into Kernel
 
PyPy
PyPyPyPy
PyPy
 
The Flow of TensorFlow
The Flow of TensorFlowThe Flow of TensorFlow
The Flow of TensorFlow
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL Debugger
 
SWIG Hello World
SWIG Hello WorldSWIG Hello World
SWIG Hello World
 
Seattle useR Group - R + Scala
Seattle useR Group - R + ScalaSeattle useR Group - R + Scala
Seattle useR Group - R + Scala
 

Viewers also liked

Intuitive understanding of backend dev
Intuitive understanding of backend devIntuitive understanding of backend dev
Intuitive understanding of backend devJustin Li
 
Weird delivered things
Weird delivered thingsWeird delivered things
Weird delivered thingsVan Monster
 
JavaScript patterns chapter 8 of mine
JavaScript patterns chapter 8 of mineJavaScript patterns chapter 8 of mine
JavaScript patterns chapter 8 of mineChien-Wei Huang
 
Annotated learning-sequence
Annotated learning-sequenceAnnotated learning-sequence
Annotated learning-sequenceJonathan Hall
 
Gwelsh Proto June 2015
Gwelsh Proto June 2015Gwelsh Proto June 2015
Gwelsh Proto June 2015Gary Welsh
 
월말보고서 견본
월말보고서 견본월말보고서 견본
월말보고서 견본Hosua Yoh
 
Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...
Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...
Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...Juan Urrutia Chimal
 
Consideraciones para instalar un equipo de cómputo
Consideraciones para instalar un equipo de cómputoConsideraciones para instalar un equipo de cómputo
Consideraciones para instalar un equipo de cómputoYakariKumul
 
Puertos y conectores del pc
Puertos y conectores del pcPuertos y conectores del pc
Puertos y conectores del pcDANIELRS79
 
Proyecto. Trabajos del Primer Parcial de Informática III
Proyecto. Trabajos del Primer Parcial de Informática IIIProyecto. Trabajos del Primer Parcial de Informática III
Proyecto. Trabajos del Primer Parcial de Informática IIIClaudiaDanielaRubio
 
Investors presentation for ChefCuisine
Investors presentation for ChefCuisineInvestors presentation for ChefCuisine
Investors presentation for ChefCuisineShuoyang (Tesla) He
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guidelinesangyun han
 
ブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピー
ブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピーブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピー
ブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピーYoshimitsu Homma
 
Les tres lletres
Les tres lletresLes tres lletres
Les tres lletres08escola
 
El món de l'armari
El món de l'armariEl món de l'armari
El món de l'armari08escola
 
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法Hiromasa Tanaka
 

Viewers also liked (18)

Intuitive understanding of backend dev
Intuitive understanding of backend devIntuitive understanding of backend dev
Intuitive understanding of backend dev
 
Weird delivered things
Weird delivered thingsWeird delivered things
Weird delivered things
 
COMO SUBIR UN ARCHIVO PPT A SLIDESHARE
COMO SUBIR UN ARCHIVO PPT A SLIDESHARECOMO SUBIR UN ARCHIVO PPT A SLIDESHARE
COMO SUBIR UN ARCHIVO PPT A SLIDESHARE
 
JavaScript patterns chapter 8 of mine
JavaScript patterns chapter 8 of mineJavaScript patterns chapter 8 of mine
JavaScript patterns chapter 8 of mine
 
Annotated learning-sequence
Annotated learning-sequenceAnnotated learning-sequence
Annotated learning-sequence
 
Gwelsh Proto June 2015
Gwelsh Proto June 2015Gwelsh Proto June 2015
Gwelsh Proto June 2015
 
월말보고서 견본
월말보고서 견본월말보고서 견본
월말보고서 견본
 
SAIArticle
SAIArticleSAIArticle
SAIArticle
 
Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...
Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...
Ubicar el lugar adecuado, uso de mobiliario y equipo de acuerdo a las polític...
 
Consideraciones para instalar un equipo de cómputo
Consideraciones para instalar un equipo de cómputoConsideraciones para instalar un equipo de cómputo
Consideraciones para instalar un equipo de cómputo
 
Puertos y conectores del pc
Puertos y conectores del pcPuertos y conectores del pc
Puertos y conectores del pc
 
Proyecto. Trabajos del Primer Parcial de Informática III
Proyecto. Trabajos del Primer Parcial de Informática IIIProyecto. Trabajos del Primer Parcial de Informática III
Proyecto. Trabajos del Primer Parcial de Informática III
 
Investors presentation for ChefCuisine
Investors presentation for ChefCuisineInvestors presentation for ChefCuisine
Investors presentation for ChefCuisine
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guideline
 
ブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピー
ブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピーブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピー
ブロックチェーン技術とそのビジネス応用への可能性 14 dec2015 のコピー
 
Les tres lletres
Les tres lletresLes tres lletres
Les tres lletres
 
El món de l'armari
El món de l'armariEl món de l'armari
El món de l'armari
 
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
 

Similar to Understanding Coroutine

The Newest in Session Types
The Newest in Session TypesThe Newest in Session Types
The Newest in Session TypesRoland Kuhn
 
Mk network programmability-03_en
Mk network programmability-03_enMk network programmability-03_en
Mk network programmability-03_enMiya Kohno
 
Declarative Programming and a form of SDN
Declarative Programming and a form of SDN Declarative Programming and a form of SDN
Declarative Programming and a form of SDN Miya Kohno
 
OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11OpenSAF Foundation
 
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...Anne Nicolas
 
The Kubernetes Effect
The Kubernetes EffectThe Kubernetes Effect
The Kubernetes EffectBilgin Ibryam
 
Digging into asyncio
Digging into asyncioDigging into asyncio
Digging into asyncioMinJeong Kim
 
Modern Frontend Technology
Modern Frontend TechnologyModern Frontend Technology
Modern Frontend TechnologyShip Hsu
 
The art of concurrent programming
The art of concurrent programmingThe art of concurrent programming
The art of concurrent programmingIskren Chernev
 
Desired language characteristics – Data typing .pptx
Desired language characteristics – Data typing .pptxDesired language characteristics – Data typing .pptx
Desired language characteristics – Data typing .pptx4132lenin6497ram
 
Tech trends 2018 2019
Tech trends 2018 2019Tech trends 2018 2019
Tech trends 2018 2019Johan Norm
 
Tectonic Summit 2016: Multitenant Data Architectures with Kubernetes
Tectonic Summit 2016: Multitenant Data Architectures with KubernetesTectonic Summit 2016: Multitenant Data Architectures with Kubernetes
Tectonic Summit 2016: Multitenant Data Architectures with KubernetesCoreOS
 
Getting Deep on Orchestration - Nickoloff - DockerCon16
Getting Deep on Orchestration - Nickoloff - DockerCon16Getting Deep on Orchestration - Nickoloff - DockerCon16
Getting Deep on Orchestration - Nickoloff - DockerCon16allingeek
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Tim Bunce
 
Use Docker to Enhance Your Testing
Use Docker to Enhance Your TestingUse Docker to Enhance Your Testing
Use Docker to Enhance Your TestingTechWell
 

Similar to Understanding Coroutine (20)

The Newest in Session Types
The Newest in Session TypesThe Newest in Session Types
The Newest in Session Types
 
Mk network programmability-03_en
Mk network programmability-03_enMk network programmability-03_en
Mk network programmability-03_en
 
Declarative Programming and a form of SDN
Declarative Programming and a form of SDN Declarative Programming and a form of SDN
Declarative Programming and a form of SDN
 
OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
 
The Kubernetes Effect
The Kubernetes EffectThe Kubernetes Effect
The Kubernetes Effect
 
Digging into asyncio
Digging into asyncioDigging into asyncio
Digging into asyncio
 
Modern Frontend Technology
Modern Frontend TechnologyModern Frontend Technology
Modern Frontend Technology
 
The art of concurrent programming
The art of concurrent programmingThe art of concurrent programming
The art of concurrent programming
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 
Desired language characteristics – Data typing .pptx
Desired language characteristics – Data typing .pptxDesired language characteristics – Data typing .pptx
Desired language characteristics – Data typing .pptx
 
Tech trends 2018 2019
Tech trends 2018 2019Tech trends 2018 2019
Tech trends 2018 2019
 
Tectonic Summit 2016: Multitenant Data Architectures with Kubernetes
Tectonic Summit 2016: Multitenant Data Architectures with KubernetesTectonic Summit 2016: Multitenant Data Architectures with Kubernetes
Tectonic Summit 2016: Multitenant Data Architectures with Kubernetes
 
Getting Deep on Orchestration - Nickoloff - DockerCon16
Getting Deep on Orchestration - Nickoloff - DockerCon16Getting Deep on Orchestration - Nickoloff - DockerCon16
Getting Deep on Orchestration - Nickoloff - DockerCon16
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
 
Reactive Programmin
Reactive ProgramminReactive Programmin
Reactive Programmin
 
Use Docker to Enhance Your Testing
Use Docker to Enhance Your TestingUse Docker to Enhance Your Testing
Use Docker to Enhance Your Testing
 

Recently uploaded

Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
VIP Call Girls Pune Madhuri 8617697112 Independent Escort Service Pune
VIP Call Girls Pune Madhuri 8617697112 Independent Escort Service PuneVIP Call Girls Pune Madhuri 8617697112 Independent Escort Service Pune
VIP Call Girls Pune Madhuri 8617697112 Independent Escort Service PuneCall girls in Ahmedabad High profile
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 

Recently uploaded (20)

Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
VIP Call Girls Pune Madhuri 8617697112 Independent Escort Service Pune
VIP Call Girls Pune Madhuri 8617697112 Independent Escort Service PuneVIP Call Girls Pune Madhuri 8617697112 Independent Escort Service Pune
VIP Call Girls Pune Madhuri 8617697112 Independent Escort Service Pune
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 

Understanding Coroutine