创建线程类threading.py

import threadingfrom time import sleep,ctime#创建线程类:class MyThread(threading.Thread):    def __init__(self,func,args,name=""):        threading.Thread.__init__(self)        self.func = func        self.args = args        self.name = name

    def run(self):        self.func(*self.args)

def super_play(file_,time):    for i in range(2):        print("Start playing: %s! %s" %(file_,ctime()))        sleep(time)

lists = {"爱情买卖.mp3":3,"阿凡达.mp4":5,"我和你.mp3":4}

threads = []files = range(len(lists))

for file_,time in lists.items():    t = MyThread(super_play,(file_,time),super_play.__name__)    threads.append(t)

if __name__ == ‘__main__‘:    #启动进程:    for i in files:        threads[i].start()    for i in files:        threads[i].join()    print("end:%s" %ctime())

"""创建MyThread类,用于继承threading.Thread类。__init__类的初始化方法对func、args、name等参数进行初始化。在Python2中,apply(func[,args[,kwargs]])函数的作用是当函数参数已经存在于一个元组或字典中时,apply0间接地调用函数。args是一个包含将要提供给函数的按位置传递的参数的元组。如果省略了args,则任何参数都不会被传递,kwargs是一个包含关键字参数的字典。Python3中已经不再支持apply()函数,所以将apply(self.func,self.args)修改为self.func(*self.args)最后,线程的创建与启动与前面的例子相同,唯一的区别是创建线程使用的是MyThread类,线程的入参形式也有所改变。"""

原文地址:https://www.cnblogs.com/zhang-da/p/12210542.html

时间: 2024-11-05 15:49:32

创建线程类threading.py的相关文章

java创建线程的三种方式及其对比

Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法,run方法的方

43.创建线程的两种方法

public class Test { public static void main(String[] args) { MyThread mt = new MyThread(); // 实例化线程对象 mt.start();// 启动线程 } } // 通过继承Thread类来创建线程 class MyThread extends Thread { private int count = 0; public void run() { while (count < 100) { count++;

python多线程之创建线程

'''创建线程''' from threading import Thread #定义一个函数 def Foo(arg):     print(arg) #创建一个线程对象,并和上面的函数Foo建立关系,args= 传一个值为100作为参数给Foo函数 print("开始创建线程...") t1 = Thread(target=Foo,args=(100,)) t2 = Thread(target=Foo,args=(200,)) #在执行之前规定哪个线程是主线程 t1.setDaem

java创建线程的三种方式及其对照

Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类.并重写该类的run方法,该run方法的方法体就代表了线程要完毕的任务.因此把run()方法称为运行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法.run方法的方

如何创建线程详解(二)

1.在 Windows 操作系统中创建进程 在 windows 操作系统中,我们创建一个进程通常就是打开某个应用软件,这便在电脑中创建了一个进程.更原始一点的,我们在命令提示符中来做(我们以打开记事本这个进程为例): 第一步:windows+R,输入cmd,打开 cmd 命令提示符 第二步:在命令提示符中输入 notepad,按 Enter 键便会弹出记事本应用软件    PS:常用的windows 应用软件命令 1.regedit:打开注册表编辑器 2.control:打开控制面板 3.msc

Java创建线程的三种主要方式

Java创建线程的主要方式 一.继承Thread类创建 通过继承Thread并且重写其run(),run方法中即线程执行任务.创建后的子类通过调用 start() 方法即可执行线程方法. 通过继承Thread实现的线程类,多个线程间无法共享线程类的实例变量.(需要创建不同Thread对象,自然不共享) 例子: /** * 通过继承Thread实现线程 */ public class ThreadTest extends Thread{ private int i = 0 ; @Override

网络编程-线程-3、通过继承Thread类创建线程

知识点:之前第一节介绍创建线程的方法是:通过threading.Thread(target=函数名不要加括号)创建一个对象,通过对象调用start方法创建并启动线程:                                                                       这一节介绍另外一种创建线程的方法:写一个子类,继承Thread类,里面定义一个run方法即可通过该子类创建一个线程 代码如下,解释看注解: #!/usr/bin/env python # co

多线程_创建线程_继承Thread类

public class ThreadDemo {   public static void main(String[] args){         Demo d = new Demo();   d.start();      for(int i = 0;i < 100;i++){      System.out.println("MainThread" + i);   }   } } class Demo extends Thread {   public void run(

使用java.util.concurrent.ThreadFactory类创建线程

工厂设计模式是Java中最常用的设计模式之一.它是一种创建型设计模式,能够用于创建一个或多个类所需要的对象.有了这个工厂,我们就能集中的创建对象. 集中创建方式给我们带来了一些好处,例如: 1. 能够很容易的改变类创建的对象或者创建对象的方式: 2. 能够很容易限制对象的创建,例如:我们只能为a类创建N个对象: 3. 能够很容易的生成有关对象创建的统计数据. 在Java中,我们通常使用两种方式来创建线程:继承Thread类和实现Runnable接口.Java还提供了一个接口,既ThreadFac