电脑世界就是一帧一帧的世界。

    
SpeedVan
13-09-16 2 719

无论显存上,寄存器,流媒体,还是其他,一切都是以”一帧一帧地“进行着。我认为计算机是一切围绕时钟的编程。

线程编程本身就隐藏有时钟概念,无论轮询,延时处理,还是定时处理等。但我们必须清楚封装了时钟后,带来了什么后果。线程是为了看起来是”同时“进行,而不是”同步“进行。这是线程的本意,但当我们引入了同步后,却用锁破坏线程的本意。

我倾向函数编程,也是因为比起指令,函数更符合一帧一帧的世界而已。

banq
2013-09-17 10:18

2013-09-16 18:34 "@SpeedVan
"的内容
但当我们引入了同步后,却用锁破坏线程的本意。 ...


使用同步,好像是让线程服从人的意志,而不是服从CPU规律一样,是比较拙劣的。

我们完全可以在服从CPU规律的基础上再次封装新的一层,然后在这个新的层面上再完成人的意志,这个新的层面就是对象化的reactor模型。

SpeedVan
2013-09-17 11:36

2013-09-17 10:18 "@banq
"的内容
使用同步,好像是让线程服从人的意志,而不是服从CPU规律一样,是比较拙劣的。 ...


是的,线程调度有其本身的逻辑进行着,但这逻辑本不具有人类意志的扩展,也就是说调度函数并不能跟运算逻辑自然结合。所以用锁来干扰调度函数,对于调度来说,是一种不可预测的意外性,所以才会引发各种资源竞争问题。让线程服从人类的业务逻辑,必须是线程函数的自然扩展。

Actor模式是一种没有干扰线程调度的模式(原因是使用微线程和消息机制),所以其能发挥最大功效。