gpt4 book ai didi

go - 当我添加 multipart.NewWriter(body_buf) 时,程序不会停止

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:50 24 4
gpt4 key购买 nike

package main

import (
"fmt"
"mime/multipart"
"bytes"
)

var channel chan string = make(chan string)

func recognize(file_path string) {
body_buf := &bytes.Buffer{}
fmt.Println(body_buf)

send_writer := multipart.NewWriter(body_buf)
fmt.Println(send_writer)
}

func loop() {
for i := 0; i < 10; i++ {
channel <- "dd"
}
}


func main() {
go loop()
for v := range channel {
fmt.Println(len(channel), v)
}
}

程序不会停止,即使我不调用recognize函数,我也不知道为什么,怎么解释

当我删除

send_writer := multipart.NewWriter(body_buf)

程序将停止并出现 fatal error :死锁

有什么不同,谁能告诉我

最佳答案

程序不会停止,因为您永远不会关闭 channel ,因此它的范围循环不会终止。在 loop 中关闭 channel ,例如

func loop() {
for i := 0; i < 10; i++ {
channel <- "dd"
}
close(channel)
}

它应该停止。

关于go - 当我添加 multipart.NewWriter(body_buf) 时,程序不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51018491/

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