V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PTLin  ›  全部回复第 6 页 / 共 26 页
回复总数  511
1 ... 2  3  4  5  6  7  8  9  10  11 ... 26  
68 天前
回复了 jeremyding 创建的主题 健康 睡饱的情况下,熬夜还会伤身体吗?
我是感觉阳光才是最重要的条件,假如你能做到凌晨四点睡觉的时候没接触日光入睡,起床后立刻可以接触到充足的日光,就可以减少短期不规律作息所带来的身体损伤。
70 天前
回复了 bli22ard 创建的主题 Rust rust TcpStream 为什么设计读写一体
@bli22ard 关键是你要明白,为什么你 Arc TcpStream 配合对&TcpStream 实现的 Write trait 可以实现 split 以用来实现一个线程读一个线程写抽象。
是因为对 Linux 来讲,fd 对应的 socket file 或者普通 file 本身就是可以多个线程/进程并发读写的,因为这个能力所以才有了 Rust 可以抽象出来的可 Send TcpStream 以及&TcpStream Write Read ,进而可以通过 Arc TcpStream 实现 split 。
70 天前
回复了 igwen6w 创建的主题 咖啡 求推荐个国产咖啡豆手磨机,手冲
查了一下 c40 ,是我孤陋寡闻了,一个手动磨豆机都要 1.5k ?
70 天前
回复了 liuidetmks 创建的主题 程序员 网盘既要大容量,又要隐私,很难办?
有钱有稳定又流量大的代理就用 mega 网盘。
70 天前
回复了 bli22ard 创建的主题 Rust rust TcpStream 为什么设计读写一体
@bli22ard 我不是让你用 dup 实现 split ,我是指 dup 之后两个 fd 也是指向的一个 vfs 这个概念,再结合你上个问的&File 问的问题你应该理解为什么有 impl Write for &TcpStream 了吧。
71 天前
回复了 bli22ard 创建的主题 Rust rust TcpStream 为什么设计读写一体
@PTLin 最后有口误,是让不同的 fd 对于的 fdtable 里的条目指向同一个 file 。
71 天前
回复了 bli22ard 创建的主题 Rust rust TcpStream 为什么设计读写一体
别钻牛角尖了,本来 os 上的 socket 就没有可以设定只能只读/只写的接口,介于这个原因标准库才没搞什么像是 tokio 里 split 那种只读只写的结构,和你上一个问的为什么&File 可以读写数据一个理由,就是更贴近 os 端的设计导致的。
所有什么只能读或者只能写的接口全都是上层语言或者库的抽象,你要想搞什么只读只写自己包一下就完事了,try_clone 在 Linux 就是 dup 系 syscall ,让多个不同 fd 指向同一个 fdtable 里的 file ,操作 clone 出来的新 TcpStream 和你操作原先的没有任何区别,两个指向的都是一个 socket file 。
72 天前
回复了 bli22ard 创建的主题 Rust rust TcpStream 为什么设计读写一体
你的想法也没什么问题。标准库没提供,只能手动 clone ,但是 tokio 提供了你想要的功能。
https://docs.rs/tokio/latest/tokio/net/struct.TcpStream.html#method.split
75 天前
回复了 bli22ard 创建的主题 Rust rust 的 File 是有魔法吗?
这个属于 api 设计问题,我举个例子。
假如有个文件 test.txt 内容是 asd
```rust
let file1 = OpenOptions::new().write(true).open("test.txt").unwrap();
let file2 = File::open("test.txt").unwrap();

(&file1).write_all(b"zxc").unwrap();
let mut buf = String::new();
(&file2).read_to_string(&mut buf).unwrap();

assert_eq!(&buf, "zxc");
```
两个变量打开了同样的文件,本来 file2 读取出来的东西应该是 asd ,但是由于打开的是一个文件,file1 修改文件后 file2 就读出来 zxc 了,就是有这种副作用,file2 在根本没有操作的情况下改变了内容,这种性质在语言层面没有办法限制。
介于 os 中 file 的这种特性,设计成非要 mut 才能 read write 就失去了意义。
吊单杠算是相当科学的方法了,我家附近的公园还能看见腰突的大妈为了缓解去吊单杠。
79 天前
回复了 Cola98 创建的主题 Rust 请教一个 Rust 问题,提前祝大家中秋节快乐
来个最小 demo ,不过你要写解析库还是推荐用 nom
82 天前
回复了 sai190209 创建的主题 Python Python 该如何进阶学习呢?
书的话无非 cookbook 和 fluent
毕竟那个文章作者冯若航就是靠 PostgreSQL 赚钱的,可以看看他之前的文章,他说出什么话我都感觉不奇怪。
90 天前
回复了 Lcode01 创建的主题 程序员 真不错,写的文章被掘金官方转载了
我都不用点开就知道是前端的文章 :)
一旦套上了“业务开发”,“业务经常变化”的 buff 之后,多丑的代码都可以接受了。
91 天前
回复了 ericcen 创建的主题 Go 编程语言 go 编程方式
91 天前
回复了 dumbbell5kg 创建的主题 程序员 进程有自己的栈吗
91 天前
回复了 dumbbell5kg 创建的主题 程序员 进程有自己的栈吗
@dumbbell5kg 你要想搞明白建议买一本好点的内核书籍,详细学习一下 switch_to ,switch_mm 都代表着什么,为什么需要内核栈,中断和 syscall 是怎样切换到内核栈的,内核栈所在的地址空间和用户地址的关系。
Linux 内核设计与实现这书是教不会人的,讲的太笼统。
1 ... 2  3  4  5  6  7  8  9  10  11 ... 26  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1069 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 19:21 · PVG 03:21 · LAX 11:21 · JFK 14:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.