python多线程运用
多线程
t = threading.Thread(target, args) 创建线程
t.start() 开始线程
t.join() 阻塞线程知道t线程结束
import time
import threadingdef target(second):print(f"{threading.current_thread().name} {second}s")time.sleep(second)print(f"{threading.current_thread().name} end")if __name__ == '__main__':print(f"{threading.current_thread().name}") # 打印线程名称t1 = time.time()for i in [1, 3, 5, 7]:t = threading.Thread(target=target, args=[i]) # 创建多线程t.start() # 线程开始# t.join() # 等待线程结束才开始下一个线程t2 = time.time()print(t2-t1)
守护进程:这个进程是不重要的,主线程结束之后,守护进程强制结束。
t2 = threading.Thread(target, args)
t2.setDaemon(True)#Daemon是守护进程的意思
t2.start()
import time
import threadingdef target(second):print(f"{threading.current_thread().name} {second}s")time.sleep(second)print(f"{threading.current_thread().name} end")if __name__ == '__main__':print(f"{threading.current_thread().name}") # 打印线程名称t1 = threading.Thread(target=target, args=[1])t1.start()t2 = threading.Thread(target=target, args=[2])t2.setDaemon(True) # 把t2线程设置为守护进程t2.start()print('MainTread end !')
t.start()只能调用一次,调用后会执行类中的run()函数,当继承threading.Thread类时,run函数重写。
锁
lock = threading.Lock() 创建锁
lock.acquire() # 获取锁
lock.release() # 释放锁
import time
import threadingclass MyThread(threading.Thread):def __init__(self):threading.Thread.__init__(self)def run(self):global countlock.acquire() # 获取锁tmp = count + 1time.sleep(0.001)count = tmplock.release() # 释放锁if __name__ == '__main__':print(f"{threading.current_thread().name}") # 打印线程名称lock = threading.Lock() # 创建锁threads = []count = 0for _ in range(1000):t = MyThread()t.start()threads.append(t)for thread in threads:thread.join()print(count)print('MainTread end !')
python有GIL全局解释器锁,在单核或多核情况下只能运行一个线程。(线程开始获取GIL,结束释放GIL,一般单核同一时刻只能运行一个线程,多核同一时刻运行多个线程)
python多线程运用相关推荐
- Python多线程(3)——Queue模块
Python多线程(3)--Queue模块 Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes). Pyth ...
- python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解
如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...
- c++主线程等待子线程结束_简单明了的 Python 多线程来了 | 原力计划
作者 | 万里羊责编 | 王晓曼出品 | CSDN博客线程和进程计算机的核心是CPU,它承担了所有的计算任务,就像是一座工厂在时刻运行.如果工厂的资源有限,一次只能供一个车间来使用,也就是说当一个车间 ...
- python3 多线程_图解|为什么 Python 多线程无法利用多核
(给Python开发者加星标,提升Python技能) 来源:后端技术指南针 1.全局解释锁 如题: Python的多线程为什么不能利用多核处理器? 全局解释器锁(Global Interpreter ...
- python多线程下的信号处理程序示例
下面是一个网上转载的实现思路,经过验证,发现是可行的,就记录下来. 思路 python多线程中要响应Ctrl+C的信号以杀死整个进程,需要: 1.把所有子线程设为Daemon: 2.使用isAlive ...
- Python 多线程抓取网页 牛人 use raw socket implement http request great
Python 多线程抓取网页 - 糖拌咸鱼 - 博客园 Python 多线程抓取网页 最近,一直在做网络爬虫相关的东西. 看了一下开源C++写的larbin爬虫,仔细阅读了里面的设计思想和一些关键技术 ...
- python 多线程编程之_thread模块
python 多线程编程之_thread模块 参考书籍:python核心编程 _thread模块除了可以派生线程外,还提供了基本的同步数据结构,又称为锁对象(lock object,也叫原语锁.简单锁 ...
- python多线程读取文件的问题_Python多线程同步---文件读写控制方法
1.实现文件读写的文件ltz_schedule_times.py #! /usr/bin/env python #coding=utf-8 import os def ReadTimes(): res ...
- c语言多线程转python多线程,真正的python 多线程!一个修饰符让你的多线程和C语言一样快...
> Python 多线程因为GIL的存在,导致其速度比单线程还要慢.但是近期我发现了一个相当好用的库,这个库只需要增加一个修饰符就可以使原生的python多线程实现真正意义上的并发.本文将和大家 ...
- python 多线程和协程结合_一文讲透 “进程、线程、协程”
本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什么? 为什么说Python中的多线程是伪多线程? 不同的应用场景该如何选择技术方案? ... 什么是进程 ...
最新文章
- 贪吃蛇计时器怎么编写java_java编写简易贪吃蛇游戏
- 沪港通:利好出尽就是利空
- Lambda and Anonymous Classes
- 【UVA11324】The Largest Clique (SCC)
- linux服务器最大连接数
- 我只注视你全cg存档_科幻国漫持续推出,全CG动画星骸骑士首播,这一次吞噬星空输了...
- as3实现(可以操纵的)真正的由惯性导致的漂移
- JAVA获取各种日期时间
- mysql什么是主键和外键?
- 《软件工程导论》第一章
- The client-side rendered virtual DOM tree is not matching server-rendered content
- Kotlin入门-数据类与密封类 的解脱,由繁至简
- Oracle中实现分页
- HTML:给你的表单设置边框!
- 【图像融合】基于非下采样剪切波变换(NSST)实现红外图像和可见光图像融合matlab代码
- Python 模拟双色球抽奖
- iOS - 动态库上架瘦身(去调虚拟机架构),不然验证会报错。
- 绘画艺术的“唯物主义”和“唯心主义”
- java String中文字符串分割成数组 中文字符串分割成一定长度的字符串数组
- DETA10惯性导航产品介绍
热门文章
- ES6新特性_ES6对象的简化写法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记008
- k8s核心技术-持久化存储(nfs网络存储)---K8S_Google工作笔记0050
- Netty工作笔记0056---Unpooled应用实例2
- 设置MYSQL数据库编码为UTF-8:
- php下拉列表框 是隐藏变色的代码,jQuery设置下拉框显示与隐藏效果的方法分析...
- Linux中nginx安装基础教程
- PHP window2003服务和2008服务器上传个别文件访问报错
- 随想录(fatfs的学习)
- js 给服务器发消息,的Node.js:发送消息至服务器
- linux远程测试题,linux内训考试题及答案