摘要: IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同 阅读全文
posted @ 2018-08-04 19:15 小小猎魔人 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 引子 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。 随着我们对于效率的追 阅读全文
posted @ 2018-08-04 10:34 小小猎魔人 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多 阅读全文
posted @ 2018-08-02 15:20 小小猎魔人 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 进程同步(multiprocess.Lock、multiprocess.Semaphore、multiprocess.Event) 锁 —— multiprocess.Lock 通过刚刚的学习,我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启也不 阅读全文
posted @ 2018-07-31 20:21 小小猎魔人 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的 阅读全文
posted @ 2018-07-30 00:09 小小猎魔人 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出 阅读全文
posted @ 2018-07-26 20:52 小小猎魔人 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一.socket的更多方法介绍 二.验证客户端链接的合法性 三.socketserver 阅读全文
posted @ 2018-07-25 21:20 小小猎魔人 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 让我们基于tcp先制作一个远程执行命令的程序(命令ls -l ; lllllll ; pwd) 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包。 注意:只有TCP有粘包现象,UDP永远不会粘包 基于tcp协议实现的远程执行命令 阅读全文
posted @ 2018-07-22 19:14 小小猎魔人 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 基于TCP协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 client端 问题:有的同学在重启服务端时可能会遇到 解决方法: 基于UDP协议的socket udp是无链接的,启动服务之后可以直接接受消息,不需要提前建立链接 简单使用 serve 阅读全文
posted @ 2018-07-19 10:43 小小猎魔人 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 二.软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发 阅读全文
posted @ 2018-07-18 19:12 小小猎魔人 阅读(162) 评论(0) 推荐(0) 编辑