Python学习-day9 线程】的更多相关文章

这节内容主要是关于线程的学习 首先要了解的什么是进程,什么是线程 进程与线程 什么是进程(process)? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次执行活动,属于动态概念. 在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行.这是这样的设计,大大提高了CPU的利用率.进程的出现让每个用户感觉到自己独享CPU,因此,…
1 run()方法 1.1 单个线程 在threading.Thread()类中有run()方法. from time import ctime,sleep import threading # 定义自己类的功能 class MyThread(threading.Thread): def __init__(self,func,args,name = ""): threading.Thread.__init__(self) self.func = func self.args = arg…
1 线程threading 1.1 基本概述 也被称为轻量级的进程. 线程是计算机多任务编程的一种方式,可以使用计算机的多核资源. 线程死应用程序中工作的最小单元 1.2 线程特点 (1)进程的创建开销较大,线程创建开销较小 (2)一个进程中可以包含多个线程 (3)线程依附于进程的存在,多个线程共享进程的资源 (4)每个线程也拥有自己独特的特征,比如ID.指令集 注意: (1)进程有独立的空间,数据安全性较高 (2)线程使用进程的资源,即一般使用全局变量的方式进行线程间通信,所以需要较复杂的同步…
目录 一.队列 二.生产者消费者模型 三.协程 四.select\poll\epoll 五.paramiko 六.mysql API调用 一.队列(queue) 队列分以下三种: class queue.Queue(maxsize=0) #先入先出 class queue.LifoQueue(maxsize=0) #last in fisrt out  class queue.PriorityQueue(maxsize=0) #存储数据时可设置优先级的队列 代码如下: import queue…
复习 :文件处理 1. 操作文件的三步骤:-- 打开文件:此时该文件在硬盘的空间被操作系统持有 |  文件对象被应用程序持用 -- 操作文件:读写操作 -- 释放文件:释放操作系统对文件在硬盘间的持有 2. 其础的读写 with open('1.txt', 'r', encoding= 'utf-8') as rf, open('2.txt', 'w', encoding='utf-8') as wf: rf.read()    # 一次性读完                         …
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和程序的出口.但是线程不能够独立执行…
8.5 线程 进程:开辟空间,加载数据,资源单位 线程:流水线,执行代码,执行单位 8.5.1 线程的概念 是操作系统能够进行运算调度的最小单位,线程包含在进程中,是进程中的执行单元,一个进程至少包含一条线程. 用户级线程 切换不需要内核支持而在用户程序中实现 内核级线程 又可以叫轻量级线程或者内核支持的线程,他的切换是由内核控制 8.5.2 线程vs进程 开销:开启多进程时开销大,而开启线程的开销非常小 速度:开启多进程的速度慢,二开启线程的速度快 通信:进程间相互独立,且数据不能直接共享,同…
一.什么是线程(thread) 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一个线程指的是进程中一个单一顺序的控制流,一个进程中可以包含多个线程,每条线程并行执行不同的任务.下面,我们来举一个例子来说明线程的工作模式: 假设你正在读一本书,你现在想休息一下,但是你想在回来继续阅读的时候从刚刚停止阅读的地方继续读.实现这一点的一种方法是记下页码.行号和字号.阅读一本书的执行环境是这三个数字. 如果你有一个室友,她也在用同样的方法阅读这本书,她可以在你不用的…
一. 异步与回调机制 问题: 1.任务的返回值不能得到及时的处理,必须等到所有任务都运行完毕才能统一进行处理 2.解析的过程是串行执行的,如果解析一次需要花费2s,解析9次则需要花费18s 解决一: (线程实现异步,回调解析结果) from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor from threading import current_thread import requests import os i…
1.字符编码 x='上' #unicode的二进制--------->编码-------->gbk格式的二进制 res=x.encode('gbk') #bytes 字节类型 print(res,type(res)) m=res.decode('gbk') print(m)  #把gbk解码成unicode,python打印自动转换成字符 2.文件处理 1.什么是文件 文件是操作系统为应用程序或者用户提供一种操作硬盘的虚拟单位 强调: 文件是操作系统提供的虚拟单位 应用程序或者用户对文件的读写…