文档章节

python语言中threading.Thread类的使用方法

o
 osc_q5urtsdm
发布于 07/08 16:22
字数 353
阅读 3
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

1. 编程语言里面的任务和线程是很重要的一个功能。在python里面,线程的创建有两种方式,其一使用Thread类创建

# 导入Python标准库中的Thread模块 
from threading import Thread 
# 创建一个线程 
mthread = threading.Thread(target=function_name, args=(function_parameter1, function_parameterN)) 
# 启动刚刚创建的线程 
mthread .start()

function_name: 需要线程去执行的方法名

args: 线程执行方法接收的参数,该属性是一个元组,如果只有一个参数也需要在末尾加逗号。

2. 重新写一个类,继承threading.Thread

import threading, time
class MyThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
    def run(self):
        global n, lock
        time.sleep(1)
        if lock.acquire():
            print n , self.name
            n += 1
            lock.release()
if "__main__" == __name__:
    n = 1
    ThreadList = []
    lock = threading.Lock()
    for i in range(1, 200):
        t = MyThread()
        ThreadList.append(t)
    for t in ThreadList:
        t.start()
    for t in ThreadList:
        t.join()

重写了父类threading.Thread的run()方法,其他方法(除了构造函数)都不应在子类中被重写。使用线程的时候生成一个子线程类的对象,然后对象调用start()方法就可以运行线程。

4. 线程等待,我们的主线程不会等待子线程执行完毕再结束自身。可以使用Thread类的join()方法来子线程执行完毕以后,主线程再关闭。

t.join()

5. isAlive()方法测试线程是否是活动的,返回线程名。 
setName(name) 
设置线程名。

 

o
粉丝 0
博文 72
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
700
1
Swift百万线程攻破单例(Singleton)模式

一、不安全的单例实现 在上一篇文章我们给出了单例的设计模式,直接给出了线程安全的实现方法。单例的实现有多种方法,如下面: class SwiftSingleton { } 这段代码的实现,在shared中进行条...

一叶博客
2014/06/20
3.5K
16
TDD的测试框架--Machine.Specification

Machine.Specification 是一个 TDD 测试驱动开发的测试框架,简化了测试,无需关心语言本身特性。 Machine.Specifications 带来的好处是不需要在代码里有注释,但同时阅读代码的人可以一目了...

匿名
2013/01/22
1.2K
0
代码生成器--Codgen

Codgen是一个基于数据库元数据模型,使用freemarker模板引擎来构建输出的代码生成器。freemarker的数据模型结构通常来说都是一个Map树状结构模型,codgen也不例外,它的数据模型这棵树的根节...

黄天政
2013/01/29
1.4W
2
opm-server-mirror

代码更新 2009-11-25: 加入反爬虫功能。直接Web访问服务器将跳转到Google。 使用方法 下载index.zip 解压index.zip得到index.php 将index.php传到支持php和cURL的国外服务器上 打开 http:/...

luosheng86
2013/01/29
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

HashMap源码分析

HashMap源码 JDK版本: 1.8 类定义 代码 public class HashMap<K,V> extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable 继承AbstractMap,AbstractMap实现Map 实现Map......

jackmanwu
15分钟前
0
0
聊聊dubbo-go的randomLoadBalance

序 本文主要研究一下dubbo-go的randomLoadBalance randomLoadBalance dubbo-go-v1.4.2/cluster/loadbalance/random.go const (name = "random")func init() {extension.SetLoadbalan......

go4it
16分钟前
11
0
如何使用jQuery更改超链接的href - How to change the href for a hyperlink using jQuery

问题: 如何使用jQuery更改超链接的href? 解决方案: 参考一: https://stackoom.com/question/kkb/如何使用jQuery更改超链接的href 参考二: https://oldbug.net/q/kkb/How-to-change-the...

fyin1314
20分钟前
0
0
Linux中.bashrc与.bash_profile的对比

如果你平时在命令行上花费了大量时间,那么你可能会萌生出希望定制 Shell 环境的想法。今天本文就和大家讲解该如何实现你们的这个想法。其实可以通过创建别名、向环境变量 $PATH 添加新目录或...

良许Linux
31分钟前
7
0
信息系统项目管理师(15)

软件需求分析的目的是对各种需求信息进行分析并抽象描述,为目标系统建立一个概念模型。通过需求分析,可以检测和解决需求之间的冲突;发现系统的边界;并详细描述出系统的需求。 访问控制授...

LitStone
44分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部