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

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...