一 理解篇
- 前言
本文仅仅用作借鉴使用,作者刚入行不久,所以请不小心看到这篇文章的朋友,手下留情。
本文以小故事的形式进行叙述,逻辑不通之处。请理解。
如有错误 ,欢迎指出。
谢谢。 最后修改时间:2019-01-25
- 1.0.0 进程
老刘是一个软件公司的老板,公司下有两个部门,产品设计部门(产品进程)和研发部门(研发进程),产品设计部门在一楼,研发部门在二楼(独立地址空间)。
两个部门之间经常因为产品设计比较难以实现和开发进度缓慢而发生争执(开销大)。
- 1.0.0.0 分布式
随着老刘的公司越来越大,项目也是越来越大,渐渐的,其它公司开始和老刘的公司进行商业合作,联合开发出一套产品,每个公司只负责产品的一个模块,由于目标明确,两个部门之间,合作愉快,不再发生争执(开销小)。
- 1.0.1 线程
前天老刘在公司安装了一台打印机(打印机线程)。
- 1.0.1.0 死锁
昨天发生了一件事,产品部门的小王和设计部门的小吴吵架了,因为两个人要打印文件(调用打印机线程),同时走到了打印机前(偶发事件),谁都想先把文件打印出来(死锁)。
为了防止这种事情再次发生,老刘规定如果再次遇到这种情况,互相不退让的情况下(时间上限),用抛硬币(随机)的方式决定谁先打印。
- 1.0.2 微线程
昨天产品部门的小王和研发部门的小吴又吵架了,因为两个人谁都没有硬币,老刘很头疼,于是雇了张女士来专门负责打印机的打印,在遇到相同情况,随机选一个人的文件进行打印。并且在遇到紧急文件情况下,可以先进行紧急文件的打印。
- 1.1.0 同步
在两个文件都紧急的情况下,先完成对最先打印的文件,依次按顺序打印。
- 1.1.1 异步
老刘找张女士打印一份文件,然后回来继续工作(没得到打印结果),张女士告诉老张,可以隔一会来看打印结束没有,也可以张女士在打印完了之后发消息通知老张,或者打印完了给老王打电话,老王被选择恐惧症折磨的快疯了。
- 1.2.0 并发
老刘创业初期,公司刚刚成立,整个研发部,只有小吴(CPU)一个人,开发进度缓慢,小吴只能一件事一件事的做。
- 1.2.1 并行
创业中期,公司初具规模,研发部增加到了一百人(CPU),开发进度很快。
- 1.2.1.1 高并发
(由于小编对高并发概念尚不清晰,故尚未编写)
- 1.3.0 阻塞
张女士在打印文件,在文件打印过程中,张女士要一直等待打印结束。
- 1.3.1 非阻塞
张女士又在打印文件,在文件打印过程中,张女士在和小吴唠家常。
参考链接:
https://www.cnblogs.com/mhq-martin/p/9035640.html
https://blog.csdn.net/woshishui918/article/details/78658046
https://blog.csdn.net/weixin_41819299/article/details/81259749
原文地址:https://www.cnblogs.com/alonelycodefarmer/p/10233632.html