加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy 里常用的异步操作方式

发布时间:2020-12-14 16:41:36 所属栏目:大数据 来源:网络整理
导读:Groovy中三种异步运行代码的方式 A . 传统的线程方式 Thread def mytask={ println "3.hello" } println "1.begin" new Thread( { mytask(); }).start() println "2.end" 将会输出: 1.begin2.end3.hello B . 使用事件发送订阅模型 Events import grails.even

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读