进程线程新解:什么是进程?什么是线程?

14-12-10 liangshan
              

anycmd的方法论中有两棵树,一棵是表达资源的结构的静态树,一棵是表达资源的运动的动态树。

线程就是那棵运动树。所有的运动都发源于cpu中的物理开关的开合,cpu的物理开关的开合顺序可能是根据一个精确的计时设备的滴答来排序的。每一次滴答进行一次开关开合事务,那是原子操作,打开或闭合每个开关的时长都是一样的,问题被化简到了cpu那里时就不存在算法复杂度这样的问题了,所有的开关都是一样的,操作每一个开关花费的时间都是一样的。

一个线程是一个cpu,那个物理cpu是根线程,那些随需而建的线程是那个物理cpu根线程下的子节点,由根节点开始分形出一棵动态的运动树。这是分神术,分神术是道教上的名词,分神不是最高的,分神后还有合体;合体也不是最高的,合体后还有渡劫;渡劫也不是最高的,渡过去了才能进入最高的,渡不过去的话只能成为散仙。

百度“分神”得到这样一段描述:“分神可以操控分身了,可以同时做两件以上的事,可以同时对不同的地点施加影响。”

进程是资源的静态结构树。

              

liangshan
2014-12-19 22:09

终于相通了,那天我和群友Dysphoria的思维接通出了个回路,当时我就感觉Dysphoria启发了我,只是当时没有理通。现在理通了:

函数体中的栈,栈的形状是树形的,被我称作动态树的那个栈,那个cpu的线程,那个来自于cpu中的物理开关按照时序开合产生回路由电力驱动的线程确实是随着时钟的滴答在一次次的接通回路。

资源的组织方式是棵静态的树,那个cpu的线程,那个动态树的意义正是要在那棵静态的资源树上去构建回路。

liangshan
2014-12-19 22:30

表现在方法体中的代码一行一行的执行(行是个大的单位,cpu构建回路的时候不是以行为单位的,可能是指令,一行代码中有很多指令),每一个指令每一行代码的执行就是在构建一次回路

线路通了才能运动,运动使得资源树再排列,排列到符合预期的状态去,然后断开回路,资源再次呈树形,树形是持久状态,树形没有回路

断开回路就是出栈,那个先进后出的栈,一层一层的,没进入一层就是构建一个回路,出栈就是断开回路

世界的意义还是源于时间,源于从一种状态运动到另一种状态必定耗费时间,正是因为必定耗费时间我们才有机会利用这个时间差来把物质排列到我们希望的位置去。如果物质的运动不需要时间的话,物质若不能保持状态的话,回路就不会有意义了。

liangshan
2014-12-20 09:08

面向结构编程,面向结构编程所信奉的是努力设计那棵静态的资源树,相信那棵静态的资源树的良好可以大大降低那棵动态的运动树的复杂度。因为系统的资源树已经被提前进行了良好的设计,从而可以避免频繁的在那棵资源树上动态的建立回路,通过较少的运动来将物质排列到预期的位置。

函数式编程,函数式编程信奉那棵动态的运动树,函数式编程倾向于努力在那棵动态的运动树上做文章,函数式编程通过频繁的在结构不太复杂的资源树上建立回路来将物质排列到预期的位置。

面向对象编程处在两者中间。

都有优点,在合适的时间与空间使用合适的技术。