V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  icexin  ›  全部回复第 2 页 / 共 4 页
回复总数  67
1  2  3  4  
2020-11-23 17:18:39 +08:00
回复了 Chaox 创建的主题 Go 编程语言 golang 中的切片地址
func main() {
months := []string{1: "January"}
fmt.Printf("%p,\n", &months)
fmt.Printf("%p,\n", months)
fmt.Printf("%p,\n", &months[0])

header := (*reflect.SliceHeader)(unsafe.Pointer(&months))
fmt.Printf("%p,\n", header)
fmt.Printf("0x%x,\n", header.Data)
fmt.Printf("0x%x,\n", header.Data+0)
}

把你的代码翻译了一下,前面的几个打印语句等价于后面的三行
2020-11-20 15:55:00 +08:00
回复了 howellz 创建的主题 Go 编程语言 golang 就没有提供一个可以被 cancel 的 read 接口?
在另外一个地方调用 conn. SetReadDeadline,参数设置一个距离很短的 deadline 就可以立马让 Read 返回错误。
比如 conn.SetReadDeadline(time.Now())
2020-10-18 19:14:41 +08:00
回复了 icexin 创建的主题 Go 编程语言 Go 编写的跑在 x86 裸机上的 unikernel
虽然现在的 cpu 都是 64 位的,但如果没有显式开启 64 位,是可以运行于传统的 32 位保护模式下的。
2020-10-18 19:13:17 +08:00
回复了 icexin 创建的主题 Go 编程语言 Go 编写的跑在 x86 裸机上的 unikernel
@pythonee 开发的时候用的 qemu,最终用 grub 引导在我自己的台式机上跑
2020-10-12 09:44:34 +08:00
回复了 icexin 创建的主题 Go 编程语言 Go 编写的跑在 x86 裸机上的 unikernel
@copie 现在只支持 go1.13 哈,其他版本可能会出现问题
2020-10-12 09:43:49 +08:00
回复了 icexin 创建的主题 Go 编程语言 Go 编写的跑在 x86 裸机上的 unikernel
@amosbird Go 的编译器会在函数入口检查栈是否溢出,如果溢出就执行 runtime 函数扩容,可能会触发调度,还有一些 writeBarrier 用于辅助 GC
2020-10-11 23:31:05 +08:00
回复了 icexin 创建的主题 Go 编程语言 Go 编写的跑在 x86 裸机上的 unikernel
@jeffh 这是一个单应用的内核,整个内核是一个 go 程序,暂不支持运行多进程,但是可以运行多个 goroutine 。内核的格式是 elf,标准库是指 go 的标准库。
2020-10-11 23:18:56 +08:00
回复了 icexin 创建的主题 Go 编程语言 Go 编写的跑在 x86 裸机上的 unikernel
@12101111 x86_64 在计划中,切换到 64 位应该还好,主要是分页管理以及一些系统调用的不一样,可能有一些其他的坑,使用 multiboot 作为 bootloader 主要是方便 qemu 调试。
2020-08-03 16:03:44 +08:00
回复了 Ansen 创建的主题 Go 编程语言 Go 中为啥喜欢这样创建变量
go 的变量初始化就是申请内存,然后 memset 为 0 。如果需要额外的初始化就用一个函数来进行初始化工作,思路很清晰。这一块倒是贯彻了 python 里面的 Explicit is better than implicit 。隐式的构造函数看着很方便,但有时候反而带来了无谓的开销。
2020-07-23 10:32:46 +08:00
回复了 Zach369 创建的主题 Go 编程语言 关于 go 协程的一个问题?
2020-06-28 19:56:54 +08:00
回复了 perryzou 创建的主题 Java 大佬们,问个 Java 面试题
按照 "手机号->记录偏移量" 作为 kv 结构排序成一个一个单独的索引文件,每个索引文件不要太大,可以在内存里面记录下每个索引文件的 range,也可以持久化成一个 manifest 文件,方便启动的时候读取。查询的时候先根据 manifest 获取索引文件,加载到内存,根据手机号找到记录偏移,再根据偏移找到 name,最后加一个手机号->name 的 lru cache 来做 cache 。
2020-03-31 19:51:55 +08:00
回复了 Mohanson 创建的主题 程序员 TCP 小知识: 假如服务端不调用 Accept() 会发生什么?
listen fd 是通过 socket 函数创建出来的,可以类比 net.Listen,用裸 socket 是可以复现题主的场景的。
2019-12-23 18:11:13 +08:00
回复了 tim0991 创建的主题 Go 编程语言 httpclient 并发 导致 goroutine 泄露 报错 socket too many files
你这个的问题是每个请求一个 client,导致打开链接太多导致的。我之前回复的一个问题或许能帮到你,只需要一个 http client 就行 https://www.v2ex.com/t/622953#r_8247009 https://gist.github.com/icexin/f3c77f17dcc28e5f43c8cdcc4e88e9da
2019-11-27 10:42:10 +08:00
回复了 wnanbei 创建的主题 Go 编程语言 Go net/http Client 的某些参数不是并发安全的?
2019-11-27 01:04:51 +08:00
回复了 wnanbei 创建的主题 Go 编程语言 Go net/http Client 的某些参数不是并发安全的?
@winterssy 是一个 client,但各个请求是独立处理的
2019-11-27 00:45:19 +08:00
回复了 wnanbei 创建的主题 Go 编程语言 Go net/http Client 的某些参数不是并发安全的?
@winterssy 这些函数本身就接受一个 Request 对象来根据不同的请求做出不同的处理策略,函数就赋值一次,为什么说修改 client 了?
2019-11-26 11:12:55 +08:00
回复了 wnanbei 创建的主题 Go 编程语言 Go net/http Client 的某些参数不是并发安全的?
@wnanbei 可以试试使用 NewRequestWithContext 在 Request 里面附加上下文信息,在 CheckRedirect 或者 Proxy 函数里面从 Request.Context 拿到 Context 来切换对应的策略。
2019-10-29 18:03:58 +08:00
回复了 wdmx007 创建的主题 Go 编程语言 [GO] net 包读取数据问题,如何触发 Conn 的可读事件
@wdmx007 有数据 Read 就立马返回,你再转发,没有数据就阻塞等待,有什么问题吗?
2019-10-29 17:54:25 +08:00
回复了 wdmx007 创建的主题 Go 编程语言 [GO] net 包读取数据问题,如何触发 Conn 的可读事件
Read 是阻塞调用,没有数据不会返回的。
2019-10-14 11:20:57 +08:00
回复了 hujianxin 创建的主题 Go 编程语言 GOPROXY 不生效
1.13 只要目录下有 go.mod 文件就自动开启 mod 模式
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1003 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 20:18 · PVG 04:18 · LAX 12:18 · JFK 15:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.