进程、线程和协程进程的定义:进程,是计算机中已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序的真正运行实例。线程的定义:操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。进程和线程的关系:一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。CPU的最小调度单元是线程不是进程,所以单进程多线程也可以利用多核CPU.协程的定义:协程通过在线程中实现调度,避免了陷
系统 2019-09-27 17:52:14 2298
Python正则表达式匹配数字电话号码:\d{3}-\d{8}|\d{4}-\d{7}QQ号:[1-9][0-9]{4,}中国邮政编码:[1-9]\d{5}(?!\d)身份证:\d{15}|\d{18}ip地址:\d+\.\d+\.\d+\.\d+[1-9]\d*正整数-[1-9]\d*负整数-?[1-9]\d*整数[1-9]\d*|0非负整数-[1-9]\d*|0非正整数[1-9]\d*\.\d*|0\.\d*[1-9]\d*$正浮点数-([1-9]\d
系统 2019-09-27 17:50:40 2298
这节主要介绍time,random模块;不用死记。首先说一下什么是模块。。。importtime有些朋友,开始比迷惑的,但是后面聊到类(属性,方法),包会好一点,我们这里没这么快说到,慢慢来,但是为了方便你记忆。。。最及简单的是.....你知道x.py是你写的python脚本;如果你在同一个目录下定义了另外一个time.py。你importtime就直接调用了(这也是,我们需要注意的,定义x.py时候名字不要跟自带的模块名字,第3方模块一样的名字,除非你自
系统 2019-09-27 17:50:00 2298
异常是指程序运行时遇到了非致命错误。python中有许多预定义的异常类型,不过如果你想定义自己的异常,也是完全可以的。如下代码自定义了一个最简单的异常,并使程序抛出了该异常:classMyException(Exception):passcondition=Falseifnotcondition:raiseMyException('条件不满足,抛出自定义异常!')可以看出,自定义的异常必须继承自Exception,这样就可以无需定义__init__方法而直
系统 2019-09-27 17:49:35 2298
1,MYSQL安装与使用相关:https://blog.csdn.net/qq_30336433/article/details/80037989navicat注册安装和激活(验证可行)PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用mysqldb。https://www.runoob.com/python3/python3-mysql.htmlPython3MySQL数据库连接-PyMySQL驱动http
系统 2019-09-27 17:49:21 2298
前言使用python实现设计模式中的单例模式。单例模式是一种比较常用的设计模式,其实现和使用场景判定都是相对容易的。本文将简要介绍一下python中实现单例模式的几种常见方式和原理。一方面可以加深对python的理解,另一方面可以更加深入的了解该模式,以便实际工作中能更加灵活的使用单例设计模式。本文将介绍常见的实现单例模式的几种方式,这里暂不考虑多线程的情况。为了准备该篇博文,之前写了几篇相关的文章依次完整的介绍了相关的概念,下面会在需要的时候给出链接。装
系统 2019-09-27 17:48:26 2298
一、列表元素的追加和插入append():追加一个元素到列表extend():列表拉伸,追加多个元素到列表insert():在指定索引处插入元素二、列表元素的删除pop(a):弹出列表中索引为a的元素,默认为列表最后一个元素pop()弹出的值可用变量接收remove():删除列表元素del:从内存种删除一个元素三、列表元素的重新赋值1、通过索引,重新赋值2、通过切片赋值四、列表元素的排序x.sort()#列表排序,默认按照ascii排序x.sort(rev
系统 2019-09-27 17:48:02 2298
下表列出了所有Python语言支持的成员运算符。例如:试试下面的例子就明白了所有的Python编程语言提供会员运算符:#!/usr/bin/pythona=10b=20list=[1,2,3,4,5];if(ainlist):print"Line1-aisavailableinthegivenlist"else:print"Line1-aisnotavailableinthegivenlist"if(bnotinlist):print"Line2-bisn
系统 2019-09-27 17:47:51 2298
目录一、同步锁1.1多个线程抢占资源的情况1.1.1对公共数据的操作1.2同步锁的引用1.3互斥锁与join的区别二、死锁与递归锁2.1死锁2.2递归锁RLock三、典型问题:科学家吃面3.1死锁问题3.2递归锁解决死锁问题一、同步锁1.1多个线程抢占资源的情况fromthreadingimportThreadimportos,timedefwork():globalntemp=ntime.sleep(0.1)n=temp-1if__name__=='__
系统 2019-09-27 17:47:06 2298
先说迭代器,对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个StopIteration异常,通知for语句循环结束。比如:>>>s='abc'>>>it=ite
系统 2019-09-27 17:38:38 2298