V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  giiiiiithub  ›  全部回复第 2 页 / 共 6 页
回复总数  111
1  2  3  4  5  6  
104 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
@nagisaushio 不好意思,忘记贴代码了: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=9645f22c4704aa689612a16a0cb8c022

具体来讲 send 方法内部不需要 self.0 = t; 也可以复现同样编译错误。
104 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
@nagisaushio 感谢,我简化了一下你的代码,也理解了其中一部分原委。这份代码编译错误,一部分是因为 Foo 实例的生命周期和被发送给&str 被标记了同样的生命周期'a 。

但是我还有不解:
1. 这份代码如果不实现 Drop 接口也能编译并运行通过,根本原因是什么?不实现 Drop 接口就不会释放吗?
104 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
@nagisaushio 老哥,Channel 的 Sender 是咋获取到的?这俩传参是一样的
104 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
@araraloren 是的,多语言,脑子切换不及时
104 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
@nagisaushio 可是把顺序不变,y 换成下边的代码,也是正常:

```
#[derive(Debug)]
struct Foo;

impl Foo {
fn send(&self, t: &str) {
println!("{}", t)
}
}

fn main() {
{
// let a = mpsc::channel();
// let y:Sender<&str> = a.0;

let y = Foo;
let x = String::from("abc");
let s = &(x[..]);
y.send(s);
}
}
```
104 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
@nagisaushio 可是为什么 x 会比 a 先 drop ?
118 天前
回复了 mercurylanded 创建的主题 Java 发现个好玩的事情
@darkengine 我给的代码是解释崩的原因,不是避免崩掉
119 天前
回复了 mercurylanded 创建的主题 Java 发现个好玩的事情
论括弧的重要性:

("\"" + d == null) ? "" : d.toString()
@coolrequest 我觉得很好用,尤其是对于开发人员,其实不用 UI ,而是直接写 idea 的.http 文件更方便。当然它自身支持的特性不够多,但是对于开发人员自测接口胜在方便。
虽然但是,还是最喜欢 idea 自带的 http client
132 天前
回复了 Umenezumi 创建的主题 Java JDK21 是否有必要维护虚拟线程池?
讲个笑话,golang 生态是有池化 goroutine 的 (狗头
synchronized 关键字和 threadlocal 的问题还没解决。。。。
136 天前
回复了 Vcide 创建的主题 程序员 请教一下这种系统到底应该怎么设计
B 处理完之后往特定通道发送通知消息,谁感兴趣谁订阅处理。
136 天前
回复了 ZZMine 创建的主题 Java 问一个线程通信的问题
有两个原因,展开讲一下第一个原因。

这个例子中有两个关于锁的队列,一个是 CLH 锁队列,即:获取和释放锁时的队列。还有一个是条件队列,即 notify/wait/signal/await 这种。

在需要所但是没有获取到锁的时候,线程进入锁队列。当线程获取到锁又 wait/await 的时候,它会做两个动作
1. 释放锁
2. 线程转移到条件队列,不再在所队列中。

这个例子中会出现问题:

1. 在初始队列为空,假设当生产线程添加 1 个元素、notify 并退出同步代码块之后,那么会有多个消费者线程从条件队列转移到了锁队列中,并且有一个消费者线程获取到了锁。

2. 如果不用 while ,而是用 if ,那么当获取到锁的消费者线程消费完,队列为空,此时消费者释放锁,这会导致其他消费者线程重新竞争锁。因为它们现在是在锁队列中,而不是在条件队列中。不幸的是,现在队列中唯一的元素已经被消费了。

3. 用 while 就不一样了,用 while ,虽然有多个消费者线程重新竞争锁,并且有一个竞争成功,但是它在判断队列为空之后,又会因为 await/wait 进入条件队列
这种场景可以在恢复后先清空缓存,清空后再给应用使用
242 天前
回复了 hpj 创建的主题 程序员 请问这是什么加密方式?
@haleclipse 都很牛哈哈,感谢
242 天前
回复了 hpj 创建的主题 程序员 请问这是什么加密方式?
@Nitroethane 好牛啊哥,你咋知道的
242 天前
回复了 xloger 创建的主题 Java 请教个 Java LinkedList 用法的问题
@giiiiiithub 修正:因为很少有场景只是增删改 、遍历,而没有随机访问
242 天前
回复了 xloger 创建的主题 Java 请教个 Java LinkedList 用法的问题
因为很少有场景只是 append 、遍历,而没有随机插入、访问
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2863 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 14:44 · PVG 22:44 · LAX 07:44 · JFK 10:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.