摘要: 要了解二者的区别与联系,首先得对进程与线程有一个宏观上的了解。 进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大 阅读全文
posted @ 2018-04-24 17:06 时光飞逝,逝者如斯 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 多线程理解 多线程是多个任务同时运行的一种方式。比如一个循环中,每个循环看做一个任务,我们希望第一次循环运行还没结束时,就可以开始第二次循环,用这种方式来节省时间。 python中这种同时运行的目的是最大化利用CPU的计算能力,将很多等待时间利用起来。这也说明如果程序耗时不是因为等待时间,而是任务非 阅读全文
posted @ 2018-04-24 15:56 时光飞逝,逝者如斯 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 本文分为如下几个部分 概念 地址问题 作为函数参数 可变参数在类中使用 函数默认参数 类的实现上的差异 概念 可变对象与不可变对象的区别在于对象本身是否可变。 python内置的一些类型中 可变对象:list dict set 不可变对象:tuple string int float bool 举一 阅读全文
posted @ 2018-04-24 15:39 时光飞逝,逝者如斯 阅读(354) 评论(0) 推荐(0) 编辑
摘要: SOCK_STREAM SOCK_DGRAM 关于UDP 关于TCP SOCK_STREAM 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送。 SOCK_DGRAM 是无保障的面向消息的socket,主要用于在网络上发广播信息。 SOCK_STREAM是基于 阅读全文
posted @ 2018-04-23 15:58 时光飞逝,逝者如斯 阅读(2731) 评论(0) 推荐(0) 编辑
摘要: Python 提供了两个基本的 socket 模块。 第一个是 Socket,它提供了标准的 BSD Sockets API。 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。 下面讲的是Socket模块功能: 1、Socket 类型 套接字格式: socket 阅读全文
posted @ 2018-04-23 15:48 时光飞逝,逝者如斯 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要。和大多数语言一样,Python 支持面向连接和无连接,实现接口 阅读全文
posted @ 2018-04-23 15:36 时光飞逝,逝者如斯 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说 阅读全文
posted @ 2018-04-23 15:31 时光飞逝,逝者如斯 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 电影故事例证:迭代——《明日边缘》递归——《盗梦空间》 迭代是更新变量的旧值。递归是在函数内部调用自身。 迭代是将输出做为输入,再次进行处理。比如将摄像头对着显示器;比如镜子对着镜子;比如KTV中将麦克对着音箱;比如机关枪扣动扳机发射子弹后,利用后座力继续扣动扳机。用程序表述就是:for (int 阅读全文
posted @ 2018-04-23 15:16 时光飞逝,逝者如斯 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。 并发的关键是你有处理多个任务的能力,不一定要同时。并行的关键是你有 阅读全文
posted @ 2018-04-23 15:11 时光飞逝,逝者如斯 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 0x00 前言 搜索引擎语法是一个本该经常使用但是却一直被我忽略工具。它可以在很大程度上满足一些特殊需求,比如:渗透时查找网站后台或者上传文件页面等。 目前主要常用的搜索引擎主要baidu、google、bing,每个搜索引擎的语法有细微的差别,但是很多地都非常类似,由于google在国内经常无法访 阅读全文
posted @ 2018-04-23 15:03 时光飞逝,逝者如斯 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。如果在时 间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。而不会造成CPU资源浪费。在 宏观上: 阅读全文
posted @ 2018-04-23 14:55 时光飞逝,逝者如斯 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 采用了多道程序设计技术的操作系统具有如下特性 : ① 并发性。它 是指两个或两个以上的事件或活动在同一时间间隔内发生。操作系统是一个并发系统,并发性是它的重要特征,操作系统的并发性指计算机系统中同时存在若干个运行着的程序,因此,它应该具有处理和调度多个程序同时执行的能力。 ②共享性。 共享指计算机系 阅读全文
posted @ 2018-04-23 13:28 时光飞逝,逝者如斯 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 模块间相互独立相互引用是任何一种编程语言的基础能力。对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义。对于编译型的语言,比如C#中的一个.cs文件,Java中的一个.java或者编译后的.class文件可以认为是一个模块(但常常不 阅读全文
posted @ 2018-04-22 22:08 时光飞逝,逝者如斯 阅读(612) 评论(0) 推荐(0) 编辑
摘要: sys.path 模块搜索路径的字符串列表。由环境变量PYTHONPATH初始化得到。 sys.path[0]是调用Python解释器的当前脚本所在的目录。 sys.argv 一个传给Python脚本的指令参数列表。 sys.argv[0]是脚本的名字(由系统决定是否是全名) 假设显示调用pytho 阅读全文
posted @ 2018-04-22 21:52 时光飞逝,逝者如斯 阅读(860) 评论(0) 推荐(0) 编辑
摘要: 一:函数装饰函数 二:函数装饰类 三:类装饰函数 四:类装饰类 参考 阅读全文
posted @ 2018-04-22 20:00 时光飞逝,逝者如斯 阅读(2049) 评论(0) 推荐(0) 编辑
摘要: 解析路径路径解析依赖与os中定义的一些变量: os.sep-路径各部分之间的分隔符。 os.extsep-文件名与文件扩展名之间的分隔符。 os.pardir-路径中表示目录树上一级的部分。 os.curdir-路径中当前目录的部分。 split()函数将路径分解为两个单独的部分,并返回包含这些结果 阅读全文
posted @ 2018-04-22 19:23 时光飞逝,逝者如斯 阅读(2004) 评论(0) 推荐(0) 编辑
摘要: 本篇文章主要对 python logging 的介绍加深理解。更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件。 1. logging日志模块介绍 python的logging模块提供了灵活的标准模块,使得任何Python程序都可以使用这个第三方模块来实现日志 阅读全文
posted @ 2018-04-22 19:09 时光飞逝,逝者如斯 阅读(1876) 评论(0) 推荐(0) 编辑
摘要: 基本用法 下面的代码展示了logging最基本的用法。 除了这些基本用法,还有一些常见的小技巧可以分享一下。 格式化输出日志 记录异常信息 当你使用logging模块记录异常信息时,不需要传入该异常对象,只要你直接调用logger.error() 或者 logger.exception()就可以将当 阅读全文
posted @ 2018-04-22 18:38 时光飞逝,逝者如斯 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 介绍 我写这篇文章的主要目的是介绍装饰器的高级用法。如果你对装饰器知之甚少,或者对本文讲到的知识点易混淆。我建议你复习下装饰器基础教程。 本教程的目标是介绍装饰器的一些有趣的用法。特别是怎样在类中使用装饰器,怎样给装饰器传递额外的参数。 装饰器 vs 装饰器模式 Decorator模式是一个面向对象 阅读全文
posted @ 2018-04-22 18:25 时光飞逝,逝者如斯 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 第一步:最简单的函数,准备附加额外功能 第二步:使用装饰函数在函数执行前和执行后分别附加额外功能 第三步:使用语法糖@来装饰函数 第四步:使用内嵌包装函数来确保每次新函数都被调用 第五步:对带参数的函数进行装饰 第六步:对参数数量不确定的函数进行装饰 第七步:让装饰器带参数 第八步:让装饰器带 类 阅读全文
posted @ 2018-04-22 18:05 时光飞逝,逝者如斯 阅读(339) 评论(0) 推荐(1) 编辑
摘要: 讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。 每个人都有的内裤主要功能是用来遮羞,但是到了冬天它没法为我们防风御寒,咋办?我们想到的一个办法就是把内裤改造一下,让它变得更厚更长,这样一来,它不仅有遮羞功能,还能提供保暖,不过有个问题,这个内裤被我们改造成了长裤后, 阅读全文
posted @ 2018-04-22 17:50 时光飞逝,逝者如斯 阅读(845) 评论(0) 推荐(0) 编辑
摘要: Python入门之面向对象的__init__和__new__方法 阅读全文
posted @ 2018-04-22 11:24 时光飞逝,逝者如斯 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 对于Python而言,有一点是要认识明确的,python作为一个相对而言轻量级的,易用的脚本语言(当然其功能并不仅限于此,在此只是讨论该特点),随着程序的增长,可能想要把它分成几个文件,以便逻辑更加清晰,更好维护,亦或想要在几个程序中均使用某个函数,而不必将其复制粘贴到所有程序中。 为了支持这一点, 阅读全文
posted @ 2018-04-22 09:03 时光飞逝,逝者如斯 阅读(10027) 评论(0) 推荐(2) 编辑
摘要: 本文绝大部分内容转载至:廖雪峰官方网站 1. 模块(Module) 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方 阅读全文
posted @ 2018-04-22 08:54 时光飞逝,逝者如斯 阅读(9827) 评论(0) 推荐(2) 编辑
摘要: 背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕。 此处,简单总结一下,module,library,package之间的大概区别。 Python中的module的简介 module,中文翻译为:模块 Python中的module,说白了,就是Python文件,而pyt 阅读全文
posted @ 2018-04-22 08:37 时光飞逝,逝者如斯 阅读(3659) 评论(1) 推荐(3) 编辑
摘要: 这篇文章主要介绍了Python 字典(Dictionary)的详细操作方法,需要的朋友可以参考下: Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。 一、创建字典字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下: 也可如此创建字典 阅读全文
posted @ 2018-04-22 08:23 时光飞逝,逝者如斯 阅读(308) 评论(0) 推荐(0) 编辑
摘要: HTTP、FTP、SMTP、Telnet等等协议,哦!那个HTTP协议啊就是访问网页用的那个协议啊然后那个······其实······你懂得,我们应该从实际来了解他,理解网络协议的作用与功能,然后再从根本来看他是具体怎么实现的。我们可以先从HTTP、FTP、DHCP、DNS、ARP等常见协议开始入手 阅读全文
posted @ 2018-04-21 19:58 时光飞逝,逝者如斯 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 请参考博客: https://blog.csdn.net/russell_tao/article/details/9111769 阅读全文
posted @ 2018-04-21 19:50 时光飞逝,逝者如斯 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 网络协议那么多,为什么面试喜欢问TCP?原因无外乎两个:1、TCP协议直接与进程打交道,写网络程序要用;2、TCP协议设计十分精巧,在一个不可靠的IP网络上实现了可靠传输,因为精巧,掌握TCP的原理自然也有难度,对它掌握如何,很能反映面试者的基础水平。闲言少叙,看看这几个问题你能不能答出来! 1、A 阅读全文
posted @ 2018-04-21 19:39 时光飞逝,逝者如斯 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 经常在笔试、面试或者工作的时候听到这些协议,虽然以前没怎么涉及过,但至少知道这些是和网络编程密不可分的知识,作为一个客户端开发程序员,如果可以懂得网络编程的话,他的作用和能力肯定会提升一个档次。原因很简单,这是个信息化时代,由于网络的存在使得人与人、人与网络的联系变得及其地紧密,游戏联网了才好玩,音 阅读全文
posted @ 2018-04-21 19:24 时光飞逝,逝者如斯 阅读(416) 评论(0) 推荐(0) 编辑
摘要: TCP与UDP解释 TCP 传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP 用户数据报协议,是一个简单的面向数据报的 阅读全文
posted @ 2018-04-21 19:19 时光飞逝,逝者如斯 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 理论技术:TCP/IP协议族(四)ICMP和IGMP协议! 应该先说IP协议的,后来考虑到层次性,还是先把支撑协议介绍完在细说IP!因为IP是我的最爱也是我的痛!呵呵! 一、ICMP协议 为什么要使用ICMP!使用ICMP的原因是什么呢? 先简单说下IP 不能做的!IP 不能提供差错控制和辅助机制( 阅读全文
posted @ 2018-04-21 19:16 时光飞逝,逝者如斯 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 这一篇我们先来看看单例模式。单例模式是设计模式中逻辑最简单,最容易理解的一个模式,简单到只需要一句话就可以理解,即“保证只有一个对象实例的模式”。问题的关键在于实现起 阅读全文
posted @ 2018-04-19 18:38 时光飞逝,逝者如斯 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 有些时候你的项目中难免需要一些全局唯一的对象,这些对象大多是一些工具性的东西,在Python中实现单例模式并不是什么难事。以下总结几种方法: 使用类装饰器 使用装饰器实现单例类的时候,类本身并不知道自己是单例的,所以写代码的人可以不care这个,只要正常写自己的类的实现就可以,类的单例有装饰器保证。 阅读全文
posted @ 2018-04-19 18:31 时光飞逝,逝者如斯 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 一、单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。 当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。例如,某个服务器程序的配置信息存放在一个文件中,客户通过一个AppConfig的类来读取配置文 阅读全文
posted @ 2018-04-17 17:26 时光飞逝,逝者如斯 阅读(366) 评论(0) 推荐(0) 编辑
摘要: Talk is cheap,Let's do this! 阅读全文
posted @ 2018-04-16 18:50 时光飞逝,逝者如斯 阅读(266) 评论(0) 推荐(0) 编辑
摘要: Python面向对象编程中,类中定义的方法可以是 @classmethod 装饰的 类方法 ,也可以是 @staticmethod 装饰的 静态方法 ,用的最多的还是不带装饰器的 实例方法 ,如果把这几个方法放一块,对初学者来说无疑是一头雾水,那我们该如何正确地使用它们呢? 先来个总结: 再来看一个 阅读全文
posted @ 2018-04-16 17:10 时光飞逝,逝者如斯 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 本章目录: 一、多态 二、多态性 三、鸭子类型 一、多态 多态指的是一类事物有多种形态. 动物有多种形态:人,狗,猪. linux中“一切皆文件”,文件具有可写可读特性: 二、多态性 1. 什么是多态动态绑定(在继承的背景下使用时,有时也称为多态性) 多态性是指在不考虑实例类型的情况下使用实例。 多 阅读全文
posted @ 2018-04-16 16:20 时光飞逝,逝者如斯 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 本章内容 Python面向对象的多态和继承对比 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为An 阅读全文
posted @ 2018-04-16 16:08 时光飞逝,逝者如斯 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 本章内容 一、继承 二、抽象类 三、继承的实现原理 一、继承 1. 继承的定义 继承是一种新建类的方式,新建的类被称为子类,子类会继承父类的属性。 在Python中支持,一个子类(派生类——可以继承一个或者多个父类(基类或者超类) 2. 为什么要用继承 继承可以有效减少代码冗余 3. 如何使用继承 阅读全文
posted @ 2018-04-12 15:33 时光飞逝,逝者如斯 阅读(296) 评论(0) 推荐(0) 编辑