V2EX chanchancl 的所有回复 第 1 页 / 共 1 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    chanchancl    全部回复第 1 页 / 共 1 页
回复总数  19
假如 p 和 q 指向同一对象,那么对 p 的修改也会影响 q

通过 !p.unique()判断 p 是否唯一指向对象,如果不唯一,则通过 p.reset 构造一个新的 string ,拷贝*p ,此时 p 和 q 就分别指向两个内容相同,但地址不同的对象了

最后对 p 进行 += 操作
2021-10-20 15:19:29 +08:00
回复了 x97bgt 创建的主题 程序员 大小端存储的疑问
大小端只是你已知数据,该如何进行存储和传送的问题(比如内存、硬盘、网络)
如何区分数字?存储系统本质上存的都是 01 序列,是不管区分的,区分靠的是你上层的 protocol
对于字节流,没必要区分,因为计算机存储的最小寻址单位就是字节了
2021-08-16 16:17:43 +08:00
回复了 LokiSharp 创建的主题 生活 看了算账的兄弟的帖子,感觉有点迷茫了
看完你的帖子,我更加迷茫了
2021-08-09 10:59:45 +08:00
回复了 GM 创建的主题 Go 编程语言 Go 成功让我实现了人格分裂
工作上 C++/GO 都会用到
个人写的 C++更多,但更喜欢 GO

所以不太理解 LZ 的痛点具体在哪里
@S2Line configmap 可以挂在为文件
然后通过检测文件变化来相应 configmap 的改动

不过从外部改动 configmap,到映射文件实际改动,中间有一个比较大的间隔,30-60s
将 func 包装成一个 function

在结尾的地方,将 tasks 中,除了自己的 task 都 cancle 掉
2020-09-23 09:54:52 +08:00
回复了 mikywei 创建的主题 C C 语言是怎么抓取网口流量的数据包并解析的?
3: 内核在初始化和启动网卡的时候,从驱动层取得 skb 之后,向上层 tcp/ip 转移的时候,会有 dump 点,将收到的信息传给外部函数,而 tcpdump 用了相关的系统调用,就可以收到这些包。

wireshark 用 libcap 去抓包,而 libcap 内的实现是建立 socket 时,指定一些参数,让数据包转发到自己的队列
2020-09-16 14:59:05 +08:00
回复了 chanchancl 创建的主题 Go 编程语言 关于 go 在 Linux , amd64 平台下的系统调用问题
@katsusan @Mohanson 多谢各位的解答,原来调用普通函数和系统调用的传参顺序也不一样
2020-09-15 16:48:23 +08:00
回复了 chanchancl 创建的主题 Go 编程语言 关于 go 在 Linux , amd64 平台下的系统调用问题
以 1.15 branch 作为标准

[clone]( https://github.com/golang/go/blob/release-branch.go1.15/src/runtime/sys_linux_amd64.s#L592)

从这里来看,R8, R9, R12 都被后面新创建的 client thread 使用了

[clone system call]( https://man7.org/linux/man-pages/man2/clone.2.html)

从 man page 看 clone 系统调用有 4 个参数。。。之前看错了。。。一直以为 clone 有 7 个参数

那么刚好对应 DI, SI, DX R10,分别是 int (*fn)(void *), void *stack, int flags, void *arg

这个问题大体上是解决了

剩下的一个小问题就是, 为什么不用 CX 和 R11

注释里有说

// Careful: Linux system call clobbers CX and R11.

这有什么原因吗?
2020-09-15 16:15:33 +08:00
回复了 chanchancl 创建的主题 Go 编程语言 关于 go 在 Linux , amd64 平台下的系统调用问题
比较了一下,发现我手里的 go1.15.1 的源码,和连接里的 go1.15.2 的代码又不一样了。。。
这些寄存器里到底哪些是传参的。。哪些是作为共享用的呢?
楼主心态挺好的,这样被人夸了之后感到开心的感觉,也很不错呢
用 OneNote for Windows 10
2020-06-08 14:39:39 +08:00
回复了 wpaygp 创建的主题 Android 由于 iPhone NFC 依然不支持门禁卡,打算转 Android 了
@chztv 小米可以根据刷卡地点自动决定用那张卡,或者也可以根据时间段来设置刷哪张卡
2020-06-05 17:39:23 +08:00
回复了 xmge 创建的主题 程序员 golang 面试之协程比线程更轻量级?
Golang 中,创建一个协程,仅仅是在用户态下创建一个 Goroutine 数据结构
而一般的线程,则要到内核态去创建,这之间就涉及到 CPU 在两个状态之间的转换。

其次 GMP 调度中,G 的调度始终是由 M 来完成的,M 由依赖于后面实际绑定的 P
P 一般来说就是原生的线程了。在 M 调度不同的 G 也就是 Go routine 时,
不需要从用户态切换到内核态,只需要将 Go routine 的上下文保存,并从自身队列或者全局队列寻找需要调度的 G,
如果由,则进行调度,没有,则在积累一定次数之后,解除与 P 的绑定,并休眠,等待一些 singal 的触发。

本质上来说就是楼上很多人讲的多核:多线程的 M:N 模型,所以调度效率较高,使用的资源较少
2020-05-25 11:57:26 +08:00
回复了 chaleaoch 创建的主题 Python Python 多线程的问题
完了,v2 把我的空格吞了,
总之上面的回复,

Lock GIL
read total,0
add total,1
此时进入休眠
Unlock GIL
这一部分,由线程一执行

Lock GIL
read total, 0
add total, 1
write total, 1
休眠
Unlock GIL
这一部分,由线程二执行

Lock GIL
write total
此时 total 的值还是 1
Unlock GIL
这一部分,由线程一执行

其实由线程几执行无所谓,重要的是这里有一个切换进程的动作。
Python 的解释器你可以理解为一个可以执行指令的 CPU

而赋值这些操作都不是原子的,不应该依赖 GIL 去做任何事,

GIL 本身也不是 Python 的特性,而是 CPython 这个实现的特性
2020-05-25 11:53:42 +08:00
回复了 chaleaoch 创建的主题 Python Python 多线程的问题
@chaleaoch
GIL 保证同时只有一个线程运行,但是并不保证多线程之间的执行顺序。
比如
Thread1 Thread2
Lock GIL
read total,0
add total,1
此时进入休眠
Unlock GIL
Lock GIL
read total, 0
add total, 1
write total, 1
休眠
Unlock GIL
Lock GIL
write total
此时 total 的值还是 1
Unlock GIL

总的来说,GIL 保护的是解释器级别的数据安全,比如对象的引用计数,垃圾分代数据等等,具体参考垃圾回收机制。而对于程序中自己定义的数据则没有任何的保护效果,所以当程序中出现了共享自定义的数据时就要自己加锁。
这句话来自 : https://www.cnblogs.com/liuxiaolu/p/10215629.html
2020-05-22 16:37:55 +08:00
回复了 chaleaoch 创建的主题 Python Python 多线程的问题
简单来说 total 不是线程安全的,
这个不只在 Python 中会出现,而是任何多线程语言下都会出现的现象,
解决方案就是访问前加锁,
或者用原子操作

不过我感觉你是来钓鱼的
???
老实人来了
Python.
str = str[0] + str.replace(str[0], '*')[1:]
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5206 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 35ms UTC 06:54 PVG 14:54 LAX 23:54 JFK 02:54
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86