【发布时间】:2021-12-02 14:51:24
【问题描述】:
我正在尝试编写一个简单的多线程 vlang 应用程序,以分别调用 'http://www.google.com' 和 'http://www.bing.com' 50 次并计算响应大小。但我收到dial_tcp failed 的多个请求:
代码如下:
module main
import net.http
import sync.pool
struct IResult {
u string
c int
}
fn sprocess(pp &pool.PoolProcessor, idx int, wid int) &IResult {
item := pp.get_item<string>(idx)
resp := http.get(item) or {
println('Err [ for $item ]: $err.msg')
return &IResult{
item,
0
}
}
return &IResult{
item,
utf8_str_len(resp.text)
}
}
fn main() {
mut pp := pool.new_pool_processor(callback: sprocess)
pp.work_on_items(['http://www.google.com', 'http://www.bing.com'].repeat(50))
for x in pp.get_results<IResult>() {
println('$x.u len = $x.c')
}
}
【问题讨论】:
标签: tcp threadpool vlang