Python 线程调用
- 简介:
Python 线程可以通过主线程,调用线程来执行其他命令,
为Python提供更方便的使用。
- 并发线程测试
# 命令调用方式
import threading,time # 定义每个线程要运行的函数
def run(n):
print("task",n)
time.sleep(1) # 生成一个线程实例target=目标,args=参数
t1 = threading.Thread(target=run,args=("t1",))
t2 = threading.Thread(target=run,args=("t2",)) #启动线程
t1.start()
t2.start()
- 并发类的继承测试
import threading,time # 继承threading.Thread
class MyThread(threading.Thread): # 重写父类的构造函数
def __init__(self,n): # 重构构造函数
super(MyThread.self).__init__()
self.n = n # 定义每个线程要运行的函数
def run(self):
print("running task ",self.n) # 实例化
t1 = MyThread("t1")
t2 = MyThread("t2") # 启动线程
t1.start()
t2.start()
- 实现并发串行执行命令
import threading,time
def run(n):
print("task",n)
time.sleep(1)
start_time = time.time()
for i in range(50):
t = threading.Thread(target=run,args=("t-%s"%i,))
t.start()
t.join() # 注:默认主线程不会等子线程执行完在执行。
# 注:串行:等待前一个命令完全执行完,在执行下一条命令。
# 注:实例.join() #wait() 等待执行完毕执行下条命令,可实现串行。
- 实现主线程等待子线程执行完毕后在往下执行
import threading,time # 定义每个线程要运行的函数
def run(n):
print("task",n)
time.sleep(2) # 测试执行结果后的用时时间
start_time = time.time() # 创建列表接收t.start()对象内容。
t_objs = [] # 循环50次
for i in range(3): # 生成一个线程实例target=目标,args=参数
t = threading.Thread(target=run,args=("t-%s"%i,)) # 启动线程 调用run
t.start() # 执行结果添加到列表
t_objs.append(t) # 将每个循环t对象一次进行等待。
for t in t_objs: # 每循环一次等待一次
t.join() # 打印用时时间
print("cost:",time.time() - start_time)
- 守护进程
import threading,time # 定义每个线程要运行的函数
def run(n):
print("task",n)
time.sleep(5) # 创建列表接收t.start()对象内容。
#t_objs = [] # 循环3次
for i in range(3): # 生成一个线程实例target=目标,args=参数
t = threading.Thread(target=run,args=("t-%s"%i,)) # 要在start之前设置
# 把当前线程设置为守护线程
t.setDaemon(True) # 启动线程 调用run
t.start()
Python 线程调用的更多相关文章
- c++线程调用python
c++调用python,底层就似乎fork一个子进程启动一个python的解释器,执行python文件,由于python解释器维护了一个内部状态,所以如果c++程序是多线程,每个线程都调用python ...
- python 线程的调用方式
python 线程的调用方式 #!/usr/bin/env python #-*- coding:utf-8 -*- # author:leo # datetime:2019/5/24 9:44 # ...
- python——线程与多线程进阶
之前我们已经学会如何在代码块中创建新的线程去执行我们要同步执行的多个任务,但是线程的世界远不止如此.接下来,我们要介绍的是整个threading模块.threading基于Java的线程模型设计.锁( ...
- python——线程与多线程基础
我们之前已经初步了解了进程.线程与协程的概念,现在就来看看python的线程.下面说的都是一个进程里的故事了,暂时忘记进程和协程,先来看一个进程中的线程和多线程.这篇博客将要讲一些单线程与多线程的基础 ...
- [python] 线程简介
参考:http://www.cnblogs.com/aylin/p/5601969.html 我是搬运工,特别感谢张岩林老师! python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件 ...
- Python线程指南
本文介绍了Python对于线程的支持,包括“学会”多线程编程需要掌握的基础以及Python两个线程标准库的完整介绍及使用示例. 注意:本文基于Python2.4完成,:如果看到不明白的词汇请记得百度谷 ...
- Python线程
原文出处: AstralWind 1. 线程基础 1.1. 线程状态 线程有5种状态,状态转换的过程如下图所示: 1.2. 线程同步(锁) 多线程的优势在于可以同时运行多个任务(至少感觉起来是这样). ...
- Python下调用Linux的Shell命令
有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 ...
- python 线程与进程
线程和进程简介 应用程序和进程以及线程的关系? 一个应用程序里可以有多个进程,一个进程里可以有多个线程 最原始的计算机是如何运行的? CPU是什么?为什么要使用多个CPU? 为什么要使用多线程? 为什 ...
随机推荐
- poj1696 Space Ant【计算几何】
含极角序排序模板. Space Ant Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5334 Accepted: ...
- 三种邻接表存图模板:vector邻接表、数组邻接表、链式前向星
vector邻接表: ; struct Edge{ int u,v,w; Edge(int _u=0,int _v=0,int _w=0){u=_u,v=_v,w=_w;} }; vector< ...
- 运行Chromium浏览器无法登录谷歌账号因为缺少google api密钥
管理员身份运行CMD,然后依次输入以下三行内容(因为比较长,最好拷贝,因为某原因粘贴第一行后,我输入了下,结果第一次没成功,可能是输入错误了.): setx GOOGLE_API_KEY " ...
- AOP 详解
1. 需求:统计方法执行的性能情况(来源:<精通Spring 4.x>) // 性能监视类 PerformanceMonitor package com.noodles.proxy; pu ...
- centos7.2 源码编译安装php7.2.4 apache2.4.37 https证书安装
一.php7.2.11源码安装 1.下载php7.2.11 wget http://cn2.php.net/downloads.php/php-7.2.11.tar.gz#### 2.安装依赖 yum ...
- Spark与mysql整合
一.需求:把最终结果存储在mysql中 1.UrlGroupCount1类 import java.net.URL import java.sql.DriverManager import org.a ...
- SQL实现交,并,差操作
有的数据库不支持intersect,except,所以交集,和差集使用嵌套查询来做比较靠谱. a表和b表具有完全一样的结构 mysql> desc a; +-------+----------- ...
- iOS中textbox文本框清除圆角
在iOS.Mac safari中,所有的textbox, select, checkbox都会被强制美化为圆角.但在特殊情况下需要清除圆角时发现iOS中使用以下传统的css无效: border-rad ...
- 优化dedecms设置文章url自定义规则
DEDECMS自定义URL规则的做得还是不错的,可清楚的看到URL中可用到的变量,并且这些变量包括年月日.时间戳.文章 ID.拼音+文章ID.拼音部首.栏目目录及日期加ID转换的字符串等,基本可以很好 ...
- 帝国cms调用缩略图和具体文章的方法
我们在用帝国cms建站的时候经常会在首页或者分类页等调用一些文章,如果文章带有展示图也把图片调用出来.帝国cms调用缩略图和具体文章怎么操作呢?我们用帝国cms的灵动标签[e:loop],只要记住常用 ...