Bootstrap

浅谈计算机同步和异步调用;线程和进程

接触计算机不久,在这里用通俗的语言谈谈我对同步和异步的理解。

前文说到cpu执行的方式无非就是电子对路径的选择。只要方向选对了,一定会到达终点,也就是屏幕。

但是,这就够了吗?

人类的欲望是无尽的。我们总是想要更快,更好,更强。

在这里,我们希望cpu执行的速度也就是效率更快。

怎么办呢?从数量和质量上入手。

方法有二:

1.增加cpu的数量

2.改进cpu执行的路径

先来看方法一,这种方法可以让指令同时在不同的设备上执行,放在电子线路里,相当于并联。这种办法可以大大提升电脑执行的效率。

给它起个名字吧,就叫同步调用,线程这个概念用在这里也可以。 

(几个指令同时在不同的cpu里执行叫线程;进程的计量单位也可以叫线程。究其根本,线程和进程它们都是对状态的描述,cpu的多少不影响它们的出现)

但是,美中不足的是,cpu是稀缺资源,一台电脑不可能只通过增加cpu的量来实现效率的提升。

那就只有方法二了,不叫同步调用的全部起名叫异步调用,这里注意,异步和同步最大的区别就是时间上指令的运行无法同步(时间间隔再短,只要有间隔,都叫不同步)。因为狼多肉少,很多指令都在抢夺一个cpu资源,他们只能排队。

这种执行状态还有个名字,叫进程。

方法二,改进cpu执行的路径?太不具体。我们来分析一下使它具象化,这样才知道究竟具体该怎么做。

首先控制一下变量,在只有一个cpu的情况下,要使得电子最快到达终点怎么办?

很简单,提升速度,或者缩短路程。

提升速度呢,这就涉及到我的知识盲区了,虽然但是,电子的速度应该是一定的吧。

缩短路程呢?

缩短路程的原理有这样几种:

1.非必要不绕道,即该控制的从源头就控制,从第一个逻辑函数就控制住,这就是我们说的main函数了。

2.走路的时候遇到很难处理的任务,直接外包,回调函数f(f(X))就是把括号里的东西外包出去直接拿来用。

(外包是提升效率的好办法,计算机世界和人类社会皆是如此)

不过,芯片设计者那么聪明,这些应该早就考虑到了吧。

好像 至此,关于计算机效率我们能做的也就只有这些了。有点无能为力。

除了效率,用户还想要什么呢?

;