跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 面试还是不写或者少写博客
未分類
2021 年 1 月 16 日

面试还是不写或者少写博客

面试还是不写或者少写博客

資深大佬 : szxczyc 2

写了博客被面试官看到了,还说博客不错,抓着一个底层的点狂问,感觉要窒息了。

博客里写了 Python 的线程不安全是因为 i++;等 C 语言的库原生就不是线程安全的,导致 Python 也不是线程安全的。然后被疯狂问 i++你怎么理解非线程安全?怎么想的?从底层理解解释一下?感觉要死了

PS:面试官人很好,就是我太菜了,哭了哭了(´•̥  ̯ •̥`)

大佬有話說 (51)

  • 資深大佬 : zhuangzhuang1988

  • 資深大佬 : snxq1995

    写原创性观点,不然真没意思。

  • 資深大佬 : Kasumi20

    i++不安全,你不会加锁吗

  • 資深大佬 : liuxu

    说实话,蛮难理解为什么 i++不是线程安全的,也就是非原子操作。

  • 資深大佬 : liuxu

    @liuxu #4 高级语言使用了临时内存,i 增加后再赋值到 i 的内存中,所以非原子了。但是汇编有 inc 指令,编译器没优化吗,还是有什么特殊性。。

  • 資深大佬 : caiji11

    @zhuangzhuang1988 我感觉写 blog 是把自己理解了的东西 比如说跳表的结构 没感觉浪费时间 就是忙的时候就坚持下来

  • 資深大佬 : liuxu

    @liuxu #5

    相关文章表示 i++会编译成
    mov ecx,dword ptr [i]
    add ecx,1
    mov dword ptr [i],ecx ;i 自增

    所以就很奇怪,明明可以 inc <mem>的

    inc, dec — Increment, Decrement
    The inc instruction increments the contents of its operand by one. The dec instruction decrements the contents of its operand by one.
    Syntax
    inc <reg>
    inc <mem>
    dec <reg>
    dec <mem>

    Examples
    dec eax — subtract one from the contents of EAX.
    inc DWORD PTR [var] — add one to the 32-bit integer stored at location var

  • 資深大佬 : liuxu

    @liuxu #7 不好意思,我又查了一下,inc 指令也是非原子操作,需要 LOCK 前缀才能原子操作,而且 inc 不会修改 cf 寄存器,add 会修改

    https://www.felixcloutier.com/x86/inc

  • 資深大佬 : LGA1150

    光 inc 指令也不足以保证线程安全,如果有多个核心同时运行了一个 inc 指令呢?
    你可以参考下 Linux 内核的 atomic_inc
    https://elixir.bootlin.com/linux/v5.11-rc3/source/tools/arch/x86/include/asm/atomic.h#L49

  • 資深大佬 : p2pCoder

    这问题其实挺常规,挺八股的,涉及语言的内存模型以及操作系统基础
    主内存和 cpu 多级缓存 以及寄存器,计算肯定是 cpu 计算,然后赋值运算同步到主内存
    上面说到的 inc 命令,这东西涉及性能问题,我不是科班出生,对汇编了解不多,但是这东西本质和缓存系统设计差不多,如果把直接编译 inc 这种可以保证原子的操作,肯定就牺牲了多级缓存的性能,各语言也提供了对应的++对应的原子操作,毕竟大多数代码 i++操作,不是在多线程环境下运行的,直接这么编译,大多数 i++操作性能都会变差

  • 資深大佬 : icyalala

    https://godbolt.org/z/6rh7c4
    看看在线汇编就知道了

    博客还是要写的,写自己弄懂的内容。

  • 資深大佬 : also24

    从结果角度来看,我觉得这里其实取决于面试官的两种心态取向。

    A:这个人答不出的问题蛮多的,不太行。
    B:这个人懂的东西蛮多的,还不错。

    对于前者的话,在意的是给你 10 个问题你能回答出几个,那自然是浅显的问题更好。
    对于后者的话,在意的是你最多能回答出多大范围的问题,那当他提出更深的问题的时候,其实潜意识中已经认为你能够回答出更浅显的问题了。

  • 資深大佬 : musi

    不懂那些说些博客是浪费时间的人是怎么写博客的。。。

  • 資深大佬 : aaronlam

    我觉得认真去写博客,的确是能一个让自己从头到尾弄懂一个问题的方式,也是能靠这种方式去梳理自己知识体系。虽然,后面会因为记忆曲线的问题而忘掉大部分细节。但是,如果回头再去看一下还是能迅速把细节轮廓建立起来。

  • 主 資深大佬 : szxczyc

    @zhuangzhuang1988 别的不说,写一下博客整理一下东西顺带写个思维导图,记得更牢固。这是真的

  • 資深大佬 : nightwitch

    面试还是不写或者少写博客
    不怪写博客,写的时候写的什么东西要自己去验证。

  • 資深大佬 : akakidz

    想开一点…说不定面试官也是看了你的博客之后恶补了一下呢…

  • 主 資深大佬 : szxczyc

    @akakidz 想法很危险哈哈哈哈哈哈

  • 資深大佬 : webshe11

    跟博客没关系,就算没博客,扯到一些细节的点照样被抓住狂问
    只要不是培训班三个月出来的,对面试的东西自己死磕过一些,多少就不怕面试官死磕了

  • 資深大佬 : gidot

    面试官私下百度恶补,面试是内心暗笑,这个逼今天装的满分。

  • 資深大佬 : zsf520zsf

    我就是怕面试官看到我博客要问太深的东西,就没在简历贴博客地址,然而我博文里面很多不是完全原创的,时间久了自己也忘了…

  • 資深大佬 : rodrick

    面之前把博客里文章过一遍,觉得自己忘记的没搞懂的先隐藏了,面完再加回去[狗头]

  • 資深大佬 : Sunnic

    说的越多越坏事

  • 資深大佬 : yzbythesea

    i++ 非线程安全不是显而易见。。。所以你都没理解线程安全和原子操作,为什么还写在博客或者放在简历里。。。

  • 資深大佬 : treblex

    我会在瞎学其他语言的时候 杂七杂八的写一篇 xx 入门,以免下次又要重新入门 面试还是不写或者少写博客

  • 資深大佬 : wangyzj

    面试官也未必懂

  • 資深大佬 : towry

    面试管懂不懂不重要,就算人家不是很精通,但是这是场面试,你只要能把面试官
    说服忽悠住就是你真的厉害。

    比如面试官问你 js 中 getOwnProperty 这个方法是做啥的,你支支吾吾的说是做这个的,其实你不懂。
    假如你说不记得 js 中有 getOwnProperty 这个方法,但是有 hasOwnProperty 这个方法,这个方法是…。
    这说明你是真的懂 /精通。

    一些人面试喜欢纠结面试官是不是比自己厉害,是不是啥都懂,人家是招人的,就是要招比自己厉害的人的。
    还有一些人讨论问题不抓问题根源,喜欢纠结表面的东西,什么你也不懂了怎么怎么样。但是就是不去解决问题,去思考深层的东西。

    写博客的好处是自己写的时候会去回忆思考,并且以后再看的时候可以加深印象理解。

    所以,面试和你写不写博客没关系。

  • 資深大佬 : MENGKE

    问到我不懂的,面试结束的时候我都是让面试官给我讲讲

  • 資深大佬 : NerverLibis

    写博客是为了恰饭挂广告的啦,一句话让 HR 走

  • 資深大佬 : RedrumSherlock

    虽然不怎么写博客,但是我觉得写博客最有用的是把自己理解的不全面的,浅薄,甚至错误的的给纠正补充,和自己用一个东西与教别人一个东西的区别一样

  • 資深大佬 : NexTooo

    @aaronlam 提升自我+1,虽然我没写博客,但是我自己整理了知识点做成笔记也是一个效果

  • 資深大佬 : Flymachine

    我更喜欢记笔记而不是写博客。剪藏功能是真的好使。
    博客的问题是写这东东更多的是给别人看的,不自觉就会换思维方式,写起来太累了。
    但写博客是个好习惯。
    没必要对答不上来太紧张。我面试答不上来的题多了去了,也没影响到对方录用我。

    i++的问题只要用过 C/C++写过多线程就会遇得到。C/C++没有多线程安全特性的库多了去了。就是 C++的 STL 库,比如 vector 和 string,都不是线程安全的。因为一旦考虑到多线程安全,就会损失运行效率。C/C++对此很斤斤计较,越是通用的库,越计较。于是你看到很多基于 C/C++的高级语言,比如说 PHP,会有两个版本——Non Thread Safe 和 Thread Safe,就是这种情况的体现。

    至于上那些依赖于编译器优化的做法,老实说不太符合编程规范中对“可移植性”的要求。语言标准里未有规定,需要依赖于编译器实现的行为,属于“Undefined Behaviour” (未定义行为, 简称 UB)。这种“黑科技”不是不能用,因为确实可以节省开发精力,提升运行效率。但你必须要知道这种东西对“可移植性”的破坏,然后小心谨慎地去使用它们。一般来说,UB 能不用最好不用。

  • 資深大佬 : keakon

    Python 没有 i++ 啊

  • 資深大佬 : Wincer

    主说的是 `n += 1` 吧,n += 1 会被解释成先计算 n+1 的值保存在中间变量里面,然后再将这个变量重新赋值给 n,这个操作最少包含两个步骤,自然不是多线程安全的。

  • 資深大佬 : kingfalse

    自建博客,月均一篇

  • 資深大佬 : guochao

    具体的知识点线程安全这个属于八股了,最好理解一下代码执行都发生了什么。

    博客这个,如果是作为摘抄本,是很没有必要的。经常能看到 CSDN 上面一天更新 20 篇博客,一看内容都是抄的那种,意义不大。实际上也非常厌恶这种,包括不作为的平台,因为这种垃圾生产者经常会把有价值的东西埋起来。有的博客写的非常随意,几行文字,没有任何具体的信息,也不大喜欢,因为信息总是有适用的场景的,A 解决的问题同样的方法给 B 不一定可以用。

    博客的意义在于两点,对其他人来说是共享知识的重要的途径,对于自己来说是重新审视、重新理解学过的知识的非常好的机会。

    我家里面我爹是做土木的,从小给我讲数学物理就是,先讲清楚 prerequisite,提出问题以后逐步引入新的方法或者概念,然后深入,最后留出来一个引子,让我自己朝着更深的方向做尝试。大学以后开始给别人讲东西,多多少少参照了我爹的想法,都是先一点点往回退到对方不会的地方,然后一点点引出来新的东西。再到后来写博客,虽然很多东西没有写出来,但是实际来说一篇博客从想到 idea 到写出来文章,读资料需要三天到一周写只需要一天两天,麻烦的可能从想到问题到写出来东西需要半年。文章的话一般就是问题、prequisite 、解决方法、总结的结构,作为技术博客一般也够了。

  • 資深大佬 : hitmanx

    @Flymachine 话说“费曼学习法”的核心就是通过向一个一点不懂的人解释清楚一件事,来督促自己整理和消化学到的知识,其实本质上和写博客是一样的。

  • 資深大佬 : Austaras

    说白了别写自己都没搞懂的东西装逼,很难吗?

  • 資深大佬 : zzzmh

    我写的都可以被问。。。因为写的都特别浅显,不太写底层。。。

  • 資深大佬 : tankren

    你那个是写的还是转的。。

  • 資深大佬 : a719031256

    我写博客纯粹是当记事本用,东西多了记不住,只能写道博客里,需要时方便查找

  • 資深大佬 : sheen

    @zhuangzhuang1988 我感觉写博客就是把自己的一些积累和理解总结一下,强化记忆,当然你要是说那种自己没用过,网上随便找的文章拼凑的确实没啥用

  • 資深大佬 : samin

    @zhuangzhuang1988

    这跟跑步是一样的 是长期才可以看出效果的东西 你写博客坚持了多久 ?

  • 資深大佬 : yamasa

    不明白 i++线程不安全说明你 CS 基础需要恶补,真的;经不住往底层问的经验,不要在面试的时候提。面试就是这样,你越写精通什么,越要有心理准备,不要打肿脸充胖子,不会就是不会。

  • 資深大佬 : ruanimal

    python 是线程安全的啊

  • 資深大佬 : Desiree

    博客只是写给自己看的,本来给别人看就是附加分,说没用的,也在理,记录知识,博客只是一种方式,并不是结果。

  • 資深大佬 : lpts007

    @ruanimal 请问什么意思,从什么角度理解?

  • 資深大佬 : ruanimal

    @lpts007 确切地说,不完全是线程安全

    https://stackoverflow.com/questions/6319207/are-lists-thread-safe

  • 資深大佬 : keepeye

    这应该涉及到汇编指令非原子操作

  • 資深大佬 : lewis89

    @p2pCoder #10 不算 8 股文吧,你有兴趣可以研究我 这个博文,保障 可见性 还是有很多需要知晓 并理解的地方
    https://www.cnblogs.com/jon-winters/p/14237940.html

  • 資深大佬 : Flymachine

    @hitmanx 啊,没错。但这么搞博客太累人了,而自己记笔记只要自己能看得懂就行。相较于博客,我更喜欢在公司内部开分享会,准备周期更长,更系统,还有真人提问,查漏补缺的效果更好。就是周期太长…

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具