多进程和多线程

多进程和多线程

程序分为两种,单进程/单线程和多进程/多线程两种。

1、同步和异步的理解

同步和异步的重点在消息通知的方式上,也就是调用结果通知的方式。
同步
当一个同步调用发出去后,调用者要一直等待调用的结果的通知后,才能进行后续的执行
异步:
当一个异步调用发出去后,调用者不能立即得到调用结果的返回。

异步调用,要想获得结果,一般有两种方式:
1、主动轮询异步调用的结果。
2、被调用方通过callback来通知调用方调用结果。

生活实例:
同步买奶茶:小明点单交钱,然后等着拿奶茶;
异步买奶茶:小明点单交钱,电源给小明一个小票,等小明奶茶做好了,再来取。

异步买奶茶,小明想知道奶茶是否做好了,有两种方式:
1、小明主动去问店员,一会就去问一下:“奶茶做好了吗?”...直到奶茶做好。
2、等奶茶做好了,店员喊了一声:“小明,奶茶好了!”,然后小明去取奶茶。

异步是一种编程模型,MQ是一种异步实现方式。

你可以走离开店铺,但是你得告诉服务员一个凭证,以便奶茶做好后可以联系到你。

多个进程或者多个线程无非就是要多占用点CPU的时间片,让程序运行效率更高点。不过进程间通信,线程上下文切换,
同步等问题同样会对性能有些影响。服务器程序为了提高CPU的利用率,采用多进程或者多线程的模型是比较常见的做法,而客户端程序一般来说的确
单进程单线程就可以了。

猜你喜欢

转载自www.cnblogs.com/2018-05-9-ygk/p/9593566.html