【python自动化第十篇:】

复习:

  线程与进程的区别:

    进程:资源的集合

    线程:最小调度单位

  • 进程至少包含一个线程
    • 线程之间的内存是共享的,两个线程操作同一个数据就会修改整个结果(需要mutex加锁来保持数据的一致性),递归锁,join(等待)

信号量:也相当于是lock

    守护线程:服务于非守护线程;

    quene:程序的解耦;提高效率;也是有序的容器;队列只有一份数据,取完了就没有了

        先进先出(FIFO)

        后进先出(LIFO)

    生产者消费者模型:也就是为了实现解耦

    event:事件---红绿灯实验

i/o不占用cpu,计算占用

python多线程不适合cpu密集型操作任务,适合i/o密集型任务

推荐的书:

  《失控》,《必然》

  《数学之美》,《浪潮之巅》

鸡汤总结:做一个有素质的人

今天的课程:

  1. govent协程
  2. select\poll\epoll异步I/O事件驱动
  3. python连接mysql的基本操作
  4. rabbitmq队列
  5. redis/memcached缓存
  6. paramiko ssh
  7. twisted网络框架

一、多进程

  解决多核问题而生

单个进程:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import multiprocessing,time
def run(name):                      #定义函数
    time.sleep(1)
    print(‘hello‘,name)
if __name__ == ‘__main__‘:
    p = multiprocessing.Process(target=run,args=(‘hehe‘,))        #实例化一个进程
    p.start()                                                      #执行进程
    p.join()                                                       #进程等待

多进程:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import multiprocessing,time

def run(name):
    print(‘hello‘,name)
    time.sleep(1)
if __name__ == ‘__main__‘:
    for i in range(10):          #定义循环
        p = multiprocessing.Process(target=run,args=("hehe %s"%i,))
        p.start()

获取进程id:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import multiprocessing,os

def info(title):                  #信息展示函数
    print(title)
    print(‘module name:‘,__name__) #打印模块名称
    print(‘parent process id‘,os.getppid()) #父进程id获取
    print(‘process id‘,os.getpid())     #当前进程id
    print(‘\n\n‘)

def f(name):                               #定义功能函数
    info(‘\033[31;1mfunction f\033[0m‘)
    print(‘hello‘,name)

if __name__ == ‘__main__‘:                  #主进程调用
    info(‘\033[32;1mmain process line\033[0m‘)
    p = multiprocessing.Process(target=f,args=(‘hehe‘,))     #定义进程
    p.start()                                                 #开始进程
    p.join()                                                  #进程等待

每一个子进程都是有其父进程启动的

 

    

时间: 2024-10-15 07:44:20

【python自动化第十篇:】的相关文章

Python自动化 【第一篇】:Python简介和入门

Python简介: 一.什么是python Python是一门动态解释性的强类型定义语言. pythonde 特点:“优雅”.“明确”.“简单”. 二.Python由来 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 三.目前Python主要应用领域 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大

python基础-第十篇-10.1HTML基础

htyper text markup language 即超文本标记语言 超文本:就是指页面内可以包含图片.链接,甚至音乐,程序等非文字元素 标记语言:标记(标签)构成的语言 网页==HTML文档,由浏览器解析,用来展示的 静态网页:静态资源,如:xxx.html 动态网页:html代码有某种开发语言根据用户请求动态生成的 标签 是由一对尖括号包裹的单词构成,例如:<html> 所有标签中的单词不可能以数字开头 标签不区分大小写,<html>和<HTML>,推荐使用小写

Python自动化 【第二篇】:Python基础-列表、元组、字典

本节内容 模块初识 .pyc简介 数据类型初识 数据运算 列表.元组操作 字符串操作 字典操作 集合操作 字符编码与转码 一.模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,让我们先来象征性的学2个简单的. sys 1 #!/usr/bin/env python 2 3 # -*- coding: utf-8 -*- 4 5 6 7 import sys 8 9 10 11 print(sys.argv) 12 13

Python 学习 第十篇 CMDB用户权限管理

不管是什么系统,用户权限都是至关重要的.所以我在注册用户的时候,就为他们分了两种权限.一种是普通用户的权限,一种是管理员权限.普通用户在数据库中的value是user,管理员的value是admin. 因为我想设计的系统是只有一位管理员的.所以这里我没有根据角色来进行判断.而是根据他的用户名来判断.管理员的用户名是唯一的,那就是admin. 闲话少说,先把注册用户的代码贴上来 逻辑端: @app.route("/adduser",methods=['GET','POST']) def 

【python自动化第六篇:面向对象】

知识点概览: 面向对象的介绍 面向对象的特性(class,object)实例变量,类变量 面型对象编程的介绍 私有方法,私有属性 一.面向对象介绍 编程范式:面向对象,面向过程,函数式编程 面向过程:通过一组指令告诉机器去一步一做什么:一个过程包含一组要被进行计算的步骤,从头到尾的执行顺序:程序的修改要注意各个部分的依赖关系,否则会影响其他过程的运行,发生一连串的影响,维护困难. 面向对象:OOP编程是利用类和对象来创建各种模型实现对真实世界的描述:使用面向对象编程的原因是一方面它会使得程序的维

Appium+python自动化(十二)- Android UIAutomator终极定位凶“胸”器(七)(超详解)

简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具.今天介绍的是一个java库,提供执行自动化测试的各种API. Android团队在4.1版本(API 16)中推出了一款全新的UI自动化测试工具UiAutomator,用来帮助开发人员更有效率的完成App的Debug工作,同时对于测试人员也是一大福音,为什么这么说呢? QA:“那个谁谁谁,我刚刚操作的时候,我发现了一个bug,你写的App打开

python自动化

[python自动化第一篇:python介绍与入门] [python自动化第二篇:python入门] [python自动化第三篇:python入门进阶] 原文地址:https://www.cnblogs.com/hcxy2007107708/p/10066532.html

Python自动化基础【第一篇】:目录

本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python自动化基础[第一篇]:目录 Python自动化基础[第二篇]:初识Python Python自动化基础[第三篇]:Python基本数据类型 Python自动化基础[第四篇]:Python基础之函数 Python自动化基础[第五篇]:Python基础之杂货铺 Python自动化基础[第六篇]:模块 Python自动化基础[第七篇]:面向对象 Python自动化基础[第

Python开发【第二十篇】:缓存

Python开发[第二十篇]:缓存redis&Memcache 点击这里 Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可