微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Groovy 里常用的异步操作方式

Groovy中三种异步运行代码的方式

A. 传统的线程方式 Thread

def mytask={println "3.hello"}
println "1.begin"
 new Thread( {
         mytask();
    }).start() 
println "2.end"

将会输出:

1.begin

2.end

3.hello

B. 使用事件发送订阅模型 Events

import grails.events.Events

 @Consumer    
 class Game implements Events{
    @Selector("play")
    def doPlay(Object msg) {
       println msg.toString()
    }
}

def gameScenarioService 

//send event,will call doPlay method asyncrhonously
notify ( "play","First Play" )

C. 使用并行库 GPars

@Grab(group='org.codehaus.gpars',module='gpars',version='1.2.1')

import groovyx.gpars.actor.DefaultActor


class CustomActor extends DefaultActor {
    @Override protected void act() {
        loop {
            react {
                println it
            }
        }
    }
}
println "begin"
def console=new CustomActor()
console.start()

//trigger to react
console.send('Message')
println "end"

sleep(100) {
    // wait Message
}

将会输出:

begin

end

Message

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐