PYTHON——多线程:Thread类与线程函数

Thread类与线程函数

可以使用Thread对象的join方法等待线程执行完毕;主线程(main()函数)中调用Thread对象的join方法,并且Thread对象的线程函数没有执行完毕,主线程会处于阻塞状态。
使用Thread类实现多线程的步骤:
1、创建Thread类的实例;
2、通过Thread类的构造方法的target关键字参数执行线程函数;通过args关键字参数指定传给线程函数的参数。
3、调用Thread对象的start方法启动线程。
下面例子功能:使用Thread对象启动2个线程,并在各自的线程函数中使用sleep函数休眠一段时间。最后使用Thread对象的join方法等待两个线程函数都执行完毕后再推出程序。

实例代码:

import threading
from time import sleep,ctime

#线程函数,index表示整数类型的索引,sec表示休眠时间,单位:秒
def fun(index,sec):
    print(‘开始执行‘,index,‘时间:‘,ctime())
    sleep(sec)
    print(‘结束执行‘,index,‘时间:‘,ctime())

def main():
    #创建第一个Thread对象,通过target关键字参数指定线程函数fun,传入索引10和休眠时间4s
    thread1 = threading.Thread(target = fun,args = (10,4))
    #启动第一个线程
    thread1.start()
    #如上所述
    thread2 = threading.Thread(target=fun,args=(20,2))
    thread2.start()
    # 等待第一个线程thread1对象执行完毕
    thread1.join()
    # 等待第二个线程thread2对象执行完毕
    thread2.join()

if __name__==‘__main__‘:
    main()
    print(‘程序退出‘)

原文地址:https://www.cnblogs.com/chenhaiming/p/9889947.html

时间: 2024-10-13 12:36:41

PYTHON——多线程:Thread类与线程函数的相关文章

Java多线程01(Thread类、线程创建、线程池)

Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程.一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序. 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 1.1.2 单线程程序 - 从入口m

PYTHON——多线程:Thread类与线程对象

Thread类与线程对象 Thread类构造方法的target关键字参数不仅可以是函数,还可以是一个对象,可以称这个对象为线程对象.其实,线程调用的仍然是函数,只是这个函数用对象进行了封装.这么做的好处是可以将线程函数相关的代码都放在这个对象对应的类中,更能体现面向对象的封装性. 线程对象对应的类需要有一个可以传入线程函数和参数的构造方法,而且在类中还必须有一个名为"__call__()"的方法.当线程启动时,会自动调用线程对象的"__call__()"方法,然后在

2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理

package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class TemplateThread { //如果这个方法不想被子类或者别人随意改动[这样子类就不能覆写该方法了],这里方法就要设置为final方法 public final void println(String message){ System.out.println("###################

java 第54节 继承Thread类创建线程

2016-07-01 1 继承Thread类创建线程 class 类名 extends Thread{ public void runa(){ //相关代码 } } package com.java1995; /** * 继承Thread类创建线程 * @author Administrator * */ public class MyThread extends Thread{ //构造器:给线程命名 public MyThread(String name){ super(name); } /

继承Thread类创建线程

1 继承Thread类创建线程 class 类名 extends Thread{ public void run(){ //相关代码 } } 2 实现Runnable接口 1 实现Runnable接口 class类名 implements Runnable{ public void run(){ } } A a=new A(); Thread t=new Thread(A); Thread t1=new Thread(A,"线程1"); 2两种方法的比较 extends Thread

【转】线程、Thread类和线程终止

一.线程Thread启动 0. Thread类实现了java.lang.Runnable接口,即实现了run方法.虽然在Sun JDK中,start()调用了start0()方法,start0()方法又是native的,但实际上新的线程就是调用了Thread的run()方法,当然这native的实现中一定有线程的fork操作,使两个线程并列执行. 1. Thread类有8个重载的构造方法.在Sun JDK的源码中,这8个构造方法都是调用了一个私有的init()方法来初始化对象的各个属性.这其中会

2018-08-25多线程Thread类+Runnable接口+线程的6种状态

多线程: 进程:进程指正在运行的程序:确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能(进入内存运行的程序成为进程)! 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程!一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序(线程是执行单元,一个进程可以包括多个线程,一个程序可以有多个进程)! 单线程程序:若有多个任务只能依次执行(这个任务执行完毕,下一个任务开始执行)!如:去网吧上网,网吧只能让一

Python 多线程 -thread threading Queue- 简单学习

在实际工作过程中,会出现需要并发的做一些事情,例如一台机器测到几千台机器的网络连通性,如果你单线程一台一台测的话,会花费很多的事情,不具有实时性,更不能在变化的时候立刻感知当时网络的状况,这时多线程就是一个很好地选择.python已经给我们封装好了多线程库thread和threading. thread:比较底层的模块 threading:Higher-level threading interface ps:建议使用threading模块 - 高级别的threading模块更为先进,对线程的支

Java 多线程——Thread类和Runable接口

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: [java] view plaincopy package org.thread.demo; class MyThread extends Thread{ private String name; public