~~~
比如:
目的:用协程跑CP复制大文件 大概10~20G文件大小吧, 让他不卡住,默认用CP是卡到复制完毕才响应的,
听说协程可以让他不卡住,继续往下走的。。
import (
"github.com/otiai10/copy"
"fmt"
)
func main() {
go func() {
err := copy.Copy("/home/go.zip", "/home/test/go_end.zip")
if err != nil {
fmt.Println("复制失败:", err)
} else {
fmt.Println("复制成功")
}
}()
fmt.Println("立刻显示这行,然后继续往下走,让CP不卡住后台运行的意思吧")
}
~~~
更多评论
~~~
我尝试这样写,我发现执行完毕,程序10G,才复制了2G不到点就暂停了 纳闷了。
func Copy_demo() {
err := copy.Copy("/home/go.zip", "/home/test/go_end.zip")
if err != nil {
fmt.Println("复制失败:", err)
} else {
fmt.Println("复制成功")
}
}
func main(){
go Copy_demo()
time.Sleep(1 * time.Second)
fmt.Println("执行完毕吗")
}
~~~
#1
这有个并发cp的示例, 你参考下,可以自己实现copy进度条:
https://github.com/relunctance/goutils/tree/master/exe/copyfile
#3