V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GeruzoniAnsasu  ›  全部回复第 103 页 / 共 148 页
回复总数  2943
1 ... 99  100  101  102  103  104  105  106  107  108 ... 148  
2019-12-26 13:14:22 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 内核中有专门结构,进程内会通过 api 来通知内核修改内核对象的值。
2019-12-26 13:13:26 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher 假设我们实现一个慢悠悠的,没有优先级的,分片很长的调度方法


那,阻塞这件事就会变成( A 等待 B 进程,系统有 ABCD4 个进程)
1. A 进程进入等待状态,调度器把 A 关联到 B,A 变为不可调度
2. 调度 B 进程,B 进程获得时间片,跑 1 秒,任务没结束。
3. 调度 C 进程,C 进程获得时间片,跑 1 秒
4. 调度 D 进程,D 进程获得时间片,跑 1 秒
5. 调度 A 进程,A 进程不能调度,继续选下一个
6. 调度 B 进程,B 进程获得时间片,跑 1 秒任务结束
7. 调度器发现 B 进程结束了,遍历正在等 B 的进程,发现 A,A 设为可调度
8. 调度 C 进程
9. 调度 D 进程
10. 调度 A 进程,A 进程获得时间片,取得 B 状态,跑 1 秒
11. 调度 B 进程,B 进程所有关联的等待者已不再等待,可以卸载 B 进程
12. 调度 C 进程

……
2019-12-26 13:04:50 +08:00
回复了 squancher 创建的主题 程序员 请问编程语言中阻塞机制在操作系统最底层是如何实现的?
@squancher

> 就是这个问题,上面问过了,怎样判断条件,能做到实时,快速反应





不是“实时”的。
协程你理解吧,协程状态变化不是“实时的”对吧,而是被等待 routine 状态改变的时候调度器把等待进程重新设为可调度而已


进程一样的,操作系统判断被等事件状态可改变时把状态修改(为完成),同时把在等待这个事件的所有进程重新设为可调度,下次调度时就能恢复它们的执行流程



顺带一提,正因为 linux 调度器算法机制不能做到“实时”,所以 linux 并不是一个实时操作系统。RTOS 需要有硬件机制来直接通知内核立即切换进程状态并调度目的进程
努力是天赋的一部分


“别人都可以你为什么不行” 是蠢蛋逻辑,有认知能力的人应该会明白 “虽然我做不到 A,但我能做好 B”
2019-12-20 10:47:03 +08:00
回复了 vanishcode 创建的主题 问与答 如果把各种编程语言形象化为冷兵器——
c 太刀:刀片看着简单,但是招式花里胡哨,打得慢
java 重弩:爆发强,上满 buff 战撸一把梭
python 轻驽:用着很友好,力量有限,可以打辅助
c# 弓:用着很爽,输出也足,但一般都不会想作为主修武器
golang 斩斧:比 c 输出高,套路少,叠红刀无脑插爆(无脑 go routine )
c 艹 盾斧:变化多机制复杂入门困难,但是能防反能超解能红斧锯个痛,打得慢。
2019-12-18 16:41:09 +08:00
回复了 Mutoo 创建的主题 分享发现 发现一个图灵完备的文言文编程语言 wenyan-lang
不是踩一顶一。
但从大家的回复和反应来看

“中文编程” 是不是笑话,谁是笑话 一目了然
2019-12-06 19:41:30 +08:00
回复了 Tumblr 创建的主题 问与答 一个非常奇妙的单词: ass
@BestSera
你游戏玩得真屌
你真玩个屌的游戏
2019-12-05 21:29:35 +08:00
回复了 Mivon 创建的主题 程序员 rust 前景
rust 是来替代 c++的
c++有几个问题导致它“难用”

内存管理很容易爆炸
语法过于复杂,难学
模板过于无拘无束,以至于衍生了太多泛型以外的作用,写和维护都很爆炸
缺少现代的包管理 /build 机制

这几个问题里
内存,现代 c++基本已经自行解决,语言层解决不了的(如因为操作系统机制导致的泄露 /溢出) rust 也无法解决
难学和难维护的问题,rust 倒退了一步。看着封装好的宏的时候可能挺爽的,读别人的代码依然酸爽
包管理是 rust 对比 c++真正的优势,但在很长一段时间里仅仅是看起来机制更好,并不存在实际的优势。你发现想用的 package 依赖 nightly build 的 rust,依然会很难受


综上所述 估计 rust 并不有能力去淘汰正在激进地往语言里加现代特性的 c++


当 c++和 rust 能做的事和实现方式都差不多的时候,反正我还是选 c++
2019-12-05 19:00:18 +08:00
回复了 1dian01 创建的主题 问与答 今年深圳太干燥,到处被静电打到,求破解办法
在北京我都摸着墙走路
2019-12-05 01:58:21 +08:00
回复了 jyounn 创建的主题 程序员 吐槽下专业书籍真是不专业
首先需要打印 7623,然后再打印 4
书的写法
先 print(76234/10)
再 print(4)

你的写法
System.out.print(n); //先看看能不能 print 4
printDigit(n/10); // 不能的话 print 7623
System.out.print(n%10);//最后 print4


“不专业!”

铪蛤蛤
2019-12-03 14:18:44 +08:00
回复了 clecho 创建的主题 随想 发现自己渐渐丧失了主动社交的能力了
@clecho

nope
不是药
时间才是药

从心所欲不逾矩,孔子活到 70 岁才有这感觉呢
2019-12-03 01:14:11 +08:00
回复了 clecho 创建的主题 随想 发现自己渐渐丧失了主动社交的能力了
感觉你们感受来得是真的晚

你说的所有东西 带给我的磨难都发生在高中 之前

幼儿园的时候:我可真牛逼,大家只认 200 个字,我能认 2000 个
小学:可能我也挺普通吧,但其他人是都不如普通人吗
中学:我并不能像出色的人那样坚定地攻克任何困难
高中:原来我是个努力不了还一直在找借口说自己努力不了的废物

我老早就意识到自己的天花板一眼可及,一点也不远
也老早就意识到宏观来看自己根本就无事可成
那 我既然是废物,那从何努力呢
为什么我要去连累别人,为什么要去跟别人建立联系?

这样的想法持续了好几年,使我断断续续不断陷入抑郁 高三的时候尤甚,除了自杀和万劫不复的东西,没什么底线是没试探过的了。过年的时候翘课,离家出走,在网吧呆了 20 天,然后什么感慨也没悟到,也没死成,也没发生大灾大难“浪子回头”,什么特别的事都没发生

人有三次成长
意识到自己不在世界中心
意识到有些事再怎么努力也无能为力
即使无能为力也还是会享受平凡且继续努力


再后来我意识到
1. 无论是我假装很努力欺骗对我有所期待的人也好,还是撕开面具哭喊我是废物也好,做出这个决定“把自己塑造成什么样子” 的,还是同一个人,装作很强很快乐,还是放弃努力躺着等死,无论想法怎样,这个想法本身——是真实的。我是真的想装成人们期待的样子或是真的不想再努力了,这个想法总是真实而明确的。因此我这个存在的概念本身是有真实的存在的,就是正在决定把自己造成什么样子的那个意识。我没有骗自己,所有的想法都是真的
2. 无论你想把自己造成什么样,别人始终以你最终的结果为标准。因此你不必欺骗别人,大多数人并不对你抱有其它额外的期待,他们只是对你的输出产生回应而已
3. 以上两点并不是想表达世界是冷漠的,而是,如果把世界想象成一个黑盒机器,那要按哪个开关,要跟什么人打交道—— 完全取决于你。首先你能够确认自己的想法是真实的,我想要去尝试的每个开关都是我的真实想法;然后新按下的开关就真的只是个开关而已。因此“世界对于你的期待与自我认知的偏差”也失去了意义

现在我们理一下我的想法
1. “自我期待与自我认知的偏差” ,由于上面的点 1,这个偏差失去了定义,因此没有意义
2. “宏观世界对我的期待和自我认知的偏差” 由于上面的点 2 和点 3,并不需要创造这种概念,因此没有意义

那现在我对自我的认知还与什么有偏差导致我产生痛苦呢,好像并不存在了。那我在痛苦什么?
照这个世界观模型
我只需要以我最舒服的方式随意去尝试扳动开关就好,反正我就是有时候正常一点有时候是废物,那这跟我尝试去接触世界的哪个方面好像并没有什么关系。大不了尝试之前我只暴露这次试验用到的素材——比方说尝试跟人打交道,我就只以最舒服的方式,暴露这次会话需要的“我是一个什么人”的属性——就够了。
至于到底尝试什么
这不就仅凭兴趣了吗
白嫖“世界机器”的试验
为啥不嫖?
2019-12-02 20:10:32 +08:00
回复了 flowfire 创建的主题 随想 当你加速到光速(或者无比接近光速)会发生什么。
补充一个关于狭义相对论的想象,有助于脑洞“加速到光速会发生什么”

考虑你在光速飞船上,然后向目的地发射一束光
依据光速不变性,你应该能观察到光相对于你自己以 c 的速度发向目的地,比如说,光在 1/c 秒内就超越了你自己 1m
而在另一个参考系看来,你跟光速一样快,因此从你飞船发出来的光与你自己都以 c 的速度同时到达目的地

那么注意以你的视角来看,光超越你只用了一瞬间,而外部参考系看来这件事永远不会发生
——除非减速的时候

好,然后考虑时空的相对性,首先时间好理解,在外部参考系看来你的时间就像被冻住了一样,“光超越飞船”这件事会一直被冻结到你减速的那一刻才会发生,那么以你自己的视角来看,就是飞船以光速飞行的这全部一大段时间全部被压缩进了你看见光超越你的那一瞬间中。比方说外部看起来你光速飞了一万年然后减速,那么你看见光超越你的那个瞬间,外界就是已经过了一万年

然后考虑空间

外部参考系看来,你用了一万年飞了一万光年,然后在快到目的地的一瞬间你减速了,光超越了飞船
但你看来光超越飞船发生在瞬间,比方说一秒。
那说明在你的视角看来,到达目的地这件事是在一秒内完成的,你看到的光速是 c,所以你看到的距离必然要压缩到 1/c 米


基于以上理解,描绘你能看到的其它景象也就变得比较容易了
比如你会看到你的前方趋近于无限亮,因为你会在一瞬间看到来自当前到未来非常遥远的时间内的所有光,后方会变得无限暗,因为从后方发射出来的所有光在你光速飞行的时候都赶不上你,并且你看到的宇宙也会更小,因为宇宙在膨胀,当你飞得很快的时候能到达你那的光必须离你更近,否则会被膨胀拉开而永远赶不上你
2019-12-02 14:53:53 +08:00
回复了 flowfire 创建的主题 随想 当你加速到光速(或者无比接近光速)会发生什么。
视角前方的镜像会变蓝,并且会看到所有东西都离自己越来越近,直至任何东西包括宇宙边界的星系离自己都触手可及

然后你伸出了手,离本应十万光年外的恒星(你看起来距你一厘米)只差一毫米了

你开始减速

你看见(本来蓝移频率过高人眼是看不见的就不纠结了)颜色迅速朝光谱左侧偏移

10 万光年外的恒星的颜色也迅速恢复正常

你停了下来

望远镜告诉你离目的地还有 100 光年

你的飞船收件箱瞬间被地球发来的消息塞爆

日期显示地球向你发了一百年的消息

望远镜对准地球

—— 九万九千九百光年外的地球

你看见地面上的人正在庆祝你的伟大计划成功 100 周年
1 ... 99  100  101  102  103  104  105  106  107  108 ... 148  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2855 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 51ms · UTC 02:36 · PVG 10:36 · LAX 18:36 · JFK 21:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.