Coroutines In Python

在学习Python中yield时顺带了解了一下Coroutines.

 

在多任务系统中,可以采取两种调度方式:抢占式preemptive和协作式cooperative,在java里,我们对前一种应该比较熟悉,jdk里面的多线程编程都是采取的这种方式。Java现在还不能在语言层面支持后一种方式。可以使用一些开源库来实现coroutines,比如Kilim,参考文章:

http://www.ibm.com/developerworks/cn/java/j-javadev2-7.html

 

 

wiki对coroutines的定义为:

In computer science, coroutines are program components that generalize subroutines to allow 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, iterators, inifnite lists and pipes.

 

yield表达式主要用来定义一个generator函数,并且只能用在函数体内。

你可能感兴趣的:(java,jdk,多线程,python,generator,Components)