V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sexoutsex2011  ›  全部回复第 1 页 / 共 49 页
回复总数  978
1  2  3  4  5  6  7  8  9  10 ... 49  
20 勇士之一,见证 CleanClip 从最初不堪一用,持续迭代,到目前唯一剪贴板管理工具(最初用的 Paste )。
应该算是我在 macOS 上购买过性价比最高的软件。👏

Y29udGFjdHdoakBxcS5jb20=

https://i.imgur.com/IAdRYVE.png
23 天前
回复了 jianyang 创建的主题 macOS mac 剪切板 APP 有推荐吗
CleanClip
28 天前
回复了 falser101 创建的主题 Linux Linux 微信 4.0 来了!牛逼
https://i.imgur.com/iTDRncR.jpeg
微信小程序还支持双屏并排显示。
macOS 下不覆盖旧包,可以实现微信双开。😀
vivo 好
在 obsidian 用多年了,能使用本地中文字体
97 天前
回复了 everfly75 创建的主题 分享创造 50 岁开发者的 AI 创业历程与收获
@everfly75 #89 看到了,谢谢
98 天前
回复了 everfly75 创建的主题 分享创造 50 岁开发者的 AI 创业历程与收获
两个问题:
1. 输入框需要 command+v 贴入图片。
2. 添加私有模型,是否能允许修改 `base_url` ?😁😁😁
105 天前
回复了 xubingok 创建的主题 游戏 想玩黑神话,求推荐电脑升级方案.
112 天前
回复了 danmary61 创建的主题 分享发现 懂王来了, X 被冲爆了
@usbaby 脑速快,口速跟不上的感觉
222 天前
回复了 xiaocongcong1 创建的主题 淘宝 大家来吐槽下淘宝网页版
累觉不爱
@blufaux #34 同不行了
271 天前
回复了 carykel 创建的主题 Apple 我被苹果生态绑定的原因就只有一个
是的,同被绑死在「共享图库」上。
271 天前
回复了 seyoatda 创建的主题 Arc Arc 使用体验
@adekang
>> 创建账户必须用申请时填的邮箱账号
@AoEiuV020JP 抱歉抱歉
我蛮帮你问了大模型,你试试看:

这段 Go 代码的主要问题是,它在等待一个信号来表明发送 goroutine 已经结束,但是这个信号从未被发送。当`sum`大于 3 时,接收循环会中断,但是发送 goroutine 会因为`intChan`的缓冲区已满而阻塞,导致无法到达打印`"End [SEND]"`的代码行。

要解决这个问题,你需要确保发送 goroutine 有机会发送完成信号。在这个场景中,你可以通过关闭`intChan`来实现,因为关闭一个通道会导致所有接收者收到一个零值,并且随后的接收都会立即返回零值,而不会阻塞。因为`intChan`是一个 int 类型的通道,接收者会得到一个`0`。

以下是修正后的代码,它确保了打印出`"End [SEND]"`:

```go
package main

import (
"fmt"
"time"
)

func main() {
intChan := make(chan int, 1)
ticker := time.NewTicker(time.Second)
done := make(chan struct{}) // 添加一个完成通道

go func() {
for range ticker.C {
select {
case intChan <- 1:
case intChan <- 2:
case intChan <- 3:
}
}
ticker.Stop() // 停止 ticker
close(intChan) // 关闭 intChan
fmt.Println("End [SEND]")
close(done) // 发送完成信号
}()

var sum int

for e := range intChan {
fmt.Printf("接收到 %d\n", e)
sum += e
if sum > 3 {
fmt.Println(sum)
break
}
}

fmt.Println("End [REC]")

<-done // 等待发送 goroutine 完成
}
```

这里做了以下改动:

1. 添加了一个`done`通道,用来接收发送 goroutine 完成的信号。
2. `ticker.Stop()`被调用来停止 ticker ,避免资源泄露。
3. 在发送循环结束后关闭`intChan`通道。
4. 打印`"End [SEND]"`后,关闭`done`通道来发送一个完成信号。
5. 在主函数的最后,添加`<-done`来等待发送 goroutine 完成。

现在程序会等待发送 goroutine 结束后,才结束`main`函数,确保`"End [SEND]"`被打印出来。请注意,这个版本的代码假设发送 goroutine 总是会结束,否则可能会导致死锁。在实际编程中,你可能需要添加超时或其他机制来处理这种情况。
323 天前
回复了 sickoo 创建的主题 iPhone 2024 了, ios 都在用什么输入法
微信输入法,自带双拼会卡机
我没有勇气整理统计
1  2  3  4  5  6  7  8  9  10 ... 49  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1198 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 18:23 · PVG 02:23 · LAX 10:23 · JFK 13:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.