多线程模块:thread

thread 是一个比较低级别的模块,官方推荐我们使用 threading 替代 thread, thread 常见用法如下:

thread.start_new_thread(function, args):开启一个新的线程,接收两个参数,分别为函数和该函数的参数,相当于开启一个新的线程来执行这个函数,注意函数的参数必须是元组类型的,例子如下,开启两个线程同时输出声音和画面

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import time
import thread

def fun(name, n):
    for i in range(n):
        print name, i
        time.sleep(1)

thread.start_new_thread(fun, (‘声音‘, 3))
thread.start_new_thread(fun, (‘画面‘, 3))

time.sleep(3)    # 这里要停止几秒,否则没等线程执行完进程就退出了
[[email protected] ~]$ python 1.py
画面 0
声音 0
画面 1
声音 1
画面 2
声音 2

thread.allocate_lock():用于创建一个锁对象,我们可以同时开启多个线程,但是在任意时刻只能有一个线程在解释器运行,因此需要由全局解锁器(GIL)控制运行哪个线程,锁对象的常用方法如下:

原文地址:https://www.cnblogs.com/pzk7788/p/10353953.html

时间: 2024-10-12 13:00:51

多线程模块:thread的相关文章

python多线程模块thread使用范例的代码

下边内容是关于python多线程模块thread使用范例的内容,希望能对小伙伴们也有用处. #!/usr/bin/python import threadimport time # Define a function for the threaddef print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadNa

[python]多线程模块thread与threading

Python通过两个标准库(thread, threading)提供了对多线程的支持 thread模块 import time import thread def runner(arg): for i in range(6): print str(i)+':'+arg time.sleep(1) #结束当前线程 thread.exit_thread() #等同于thread.exit() #启动一个线程,第一个参数为函数名, #第二个参数为一个tuple类型,是传给函数的参数 thread.st

Python多线程模块

引言 thread threading 1 Thread 11 下面使用threading模块实现与上面相同的功能 12 在创建新线程时还可以给Thread传递可调用类的对象这样使用类本身来保存信息 如 13 从Thread派生一个子类然后创建这个子类的实例 14 实例 Queue 0. 引言 在Python中可使用的多线程模块主要有两个,thread和threading模块.thread模块提供了基本的线程和锁的支持,建议新手不要使用.threading模块允许创建和管理线程,提供了更多的同步

[ PyQt入门教程 ] PyQt5中多线程模块QThread使用方法

本文主要讲解使用多线程模块QThread解决PyQt界面程序唉执行耗时操作时,程序卡顿出现的无响应以及界面输出无法实时显示的问题.用户使用工具过程中出现这些问题时会误以为程序出错,从而把程序关闭.这样,导致工具的用户使用体验不好.下面我们通过模拟上述出现的问题并讲述使用多线程QThread模块解决此类问题的方法. PyQt程序卡顿和无法实时显示问题现象 使用PyQt界面程序,点击运行按钮后,程序在显示框中每秒打印1个数字.程序代码如下: # -*- coding: utf-8 -*- impor

Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享

Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com           熟悉Unity的developer都知道在Unity中的线程不能使用Unity的对象,但可以使用Unity的值类型变量,如Vector3等.这样就使得线程在Unity中显的很鸡肋和蹩脚,因为很多函数很都是UnityEngine类或函数的调用的,对于哪些是可以在多线程使用,风雨冲

多线程——继承Thread类

在具体介绍java多线程的使用之前,先让我们看看下面几个问题. 什么是多线程 简单的理解成:cpu"同时"执行多个任务,这就是多线程.(究其本质,当涉及到进程和线程的概念,上面的说法也不太合适,不过,简单的理解成这样也不为过.) 多线程解决了什么问题? 多线程通过充分利用cpu实现了提高计算机效率的问题. 使用了多线程,效率就一定会提高? 答案是否定的.在适当的情况下使用多线程,确实能提高效率,但是如果滥用多线程,有时候效率反而会降低.那么,什么情况下使用多线程会提高效率就成为了一个至

java之多线程(Thread)

1 package DEMO; 2 //主线程 3 public class Example12_2 { 4 public static void main(String [] args ) 5 { 6 Thread mydad ; //用Thread声明线程 7 Thread mymom ; 8 baba ba ; //ba是目标对象 9 mom ma ; 10 ba = new baba(); //创建目标对象 11 ma = new mom(); 12 mydad = new Thread

python的多线程编程 --- thread模块

1.使用thread模块(不推荐) 常用函数: 'start_new_thread(function,args,kwargs=None)':创建一个新的线程,并运行'function(args)' 'allocate_lock()': 创建锁对象 Lock object 'exit()': 提示线程退出 Lock的函数: 'acquire(wait=None)': 获取lock对象或等待wait时间 'locked()' 获得lock返回true,否则返回false 'release' :释放l

41 Python - python并行编程 多线程之——thread模块(已经过时,开发不推荐)

多线程并非并发编程的唯一技术手段,但是用的比较多的还是多线程. 001 单线程例子 创建文件 002 多线程例子 缺点没有控制进程结束的机制 _thread已经不推荐使用了(所以前面有有个下划线),学习阶段用于实验 (1)新建文件 函数_thread(第一个参数,第二个参数) 第一个参数,只需要写函数名,不用加括号 第二个参数,需要是元组形式 但是结果不正确,因为主线程没有等待子线程,一运行就结束了 (2)改进主线程让其等待子线程结束再结束 改进main函数,让主线程等待一下6秒等待子线程结束