gpt4 book ai didi

multithreading - groovy 多线程

转载 作者:行者123 更新时间:2023-12-04 08:27:10 25 4
gpt4 key购买 nike

我是 groovy/grails 的新手。

如何为这段代码实现线程。有 2500 个 url,检查每个 url 需要花费数小时的时间。

所以我决定为此实现多线程:

这是我的示例代码:

def urls = [
"http://www.wordpress.com",
"http://67.192.103.225/QRA.Public/" ,
"http://www.subaru.com",
"http://baldwinfilter.com/products/start.html"
]

def up = urls.collect { ur ->
try {
def url = new URL(ur)
def connection = url.openConnection()
if (connection.responseCode == 200) {
return true
} else {
return false
}
} catch (Exception e) {
return false
}
}

对于这段代码,我需要实现多线程。
任何人都可以请给我建议代码。

提前致谢,
斯里兰卡

最佳答案

我会看看Groovy Parallel Systems图书馆。特别是我认为Parallel collections部分会很有用。

查看文档,我相信 collectParallel 是 collect 的直接替代品(记住关于副作用的明显警告)。以下对我来说很好用:

def urls = [
"http://www.wordpress.com",
"http://www.subaru.com",
"http://baldwinfilter.com/products/start.html"
]
Parallelizer.doParallel {
def up = urls.collectParallel { ur ->
try {
def url = new URL(ur)
def connection = url.openConnection()
if (connection.responseCode == 200) {
return true
} else {
return false
}
} catch (Exception e) {
return false
}
}
println up
}

关于multithreading - groovy 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2583757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com