广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python 多线程特性1
  • 241
分享到

python 多线程特性1

多线程特性python 2023-01-31 01:01:40 241人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

 多线程编程:           1. 用来加速程序的执行速度(并行);          2.用来模拟生活中随机现象,比如:生产-消费问题,排队-等待问题等等; 下面的一个实例使用的就是: 1. 加速程序的执行速度(并行):   /

 多线程编程: 

         1. 用来加速程序的执行速度(并行);

         2.用来模拟生活中随机现象,比如:生产-消费问题,排队-等待问题等等;

下面的一个实例使用的就是: 1. 加速程序的执行速度(并行):

 

//1. 这个是一个threading.Thread的派生类, 用来处理多线程函数调用的。使用了装饰者模式
import threading 
from time import sleep, ctime

loops = (4,2)

class MyThread(threading.Thread):
    def __init__(self, func, args, name=''):
        threading.Thread.__init__(self) #base class func
        self.name = name
        self.func = func
        self.args = args

    # in the other way, use __call__()
    # Desiner patter -- Decorator
    def run(self):
        print '\n starting ', self.name, ' at:', \
              ctime()
        self.res = apply(self.func, self.args)
        print self.name, ' \nfinished at:', \
              ctime() , '\n'

    def getResult(self):
        return self.res

//2. 这里就是调用派生线程类来处理函数,使其并行执行,加速程序的执行
from threading_subclass_project_001 import MyThread
from time import ctime, sleep

def fib(x):
    sleep(0.005) #just for test
    if x<2: return 1
    return (fib(x-2)+fib(x-1))

def fac(x):
    sleep(0.1)
    if x<2: return 1
    return (x*fac(x-1))

def sum(x):
    sleep(0.1)
    if x<2: return 1
    return (x+sum(x-1))

#list of funcs pointer
funcs = [fib,fac,sum]
n = 12

def main():
    nfuncs = range(len(funcs))

    print '***SINGLE THREAD'
    for i in nfuncs:
        print 'starting', funcs[i].__name__, 'at:', \
              ctime()
        print funcs[i](n) #call the functions
        print funcs[i].__name__, 'finisthed at:', \
              ctime()

    print '\n*** MULTIPLE THREADS'
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i], (n,), funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()

    print 'all Done!'

if __name__ =='__main__':
    main()




            
        

--结束END--

本文标题: python 多线程特性1

本文链接: https://www.lsjlt.com/news/183875.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 多线程特性1
     多线程编程:           1. 用来加速程序的执行速度(并行);          2.用来模拟生活中随机现象,比如:生产-消费问题,排队-等待问题等等; 下面的一个实例使用的就是: 1. 加速程序的执行速度(并行):   /...
    99+
    2023-01-31
    多线程 特性 python
  • C++20 特性 协程 Coroutines(1)
    目录一、协程简单介绍二、协程的好处三、协程得用法四、协程三个关键字五、协程工作原理1、co_yield2、co_return我们先来介绍一下什么是协程. 一、协程简单介绍 协程和普通...
    99+
    2022-11-12
  • 线性代数1:线性方程和系统
    Digital Collection (staedelmuseum.de) 图片来自施泰德博物馆 一、前言         通过这些文章,我希望巩固我对这些基本概念的理解,同时如果可能的话,通过我希望成...
    99+
    2023-10-26
    算法 机器学习 人工智能
  • 多线程python的实现及多线程有序性
    目录前言一、多线程运行无序问题二、“join方法”解决多线程运行无序问题三、threading.Thread()的常用参数总结前言 多线程一般用于同时调用多个...
    99+
    2022-11-11
  • Python:线程、进程与协程(1)——
            最近的业余时间主要放在了学习Python线程、进程和协程里,第一次用python的多线程和多进程是在两个月前,当时只是简单的看了几篇博文然后就跟着用,没有仔细去研究,第一次用的感觉它们其实挺简单的,最近这段时间通过看书, 看...
    99+
    2023-01-31
    线程 进程 Python
  • python多线程及多线程有序性怎么实现
    这篇文章主要介绍了python多线程及多线程有序性怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python多线程及多线程有序性怎么实现文章都会有所收获,下面我们一起来看看吧。前言多线程一般用于同时调用...
    99+
    2023-07-02
  • HTML5新特性中多线程的示例分析
    这篇文章给大家分享的是有关HTML5新特性中多线程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Worker类  1、方法介绍  (1)构造函数 new Worke...
    99+
    2022-10-19
  • 解析Java的多线程机制(1)(转)
    解析Java的多线程机制(1)(转)[@more@]进程与应用程序的区别    进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操...
    99+
    2023-06-03
  • python多线程————3、多线程间通
    1、共享变量 #通过共享变量 import time import threading url_list = [] def get_detail_html(): global url_list while True: ...
    99+
    2023-01-31
    多线程 python
  • Python 多线程
      文章来源:https://www.runoob.com/python/python-multithreading.html 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的...
    99+
    2023-01-31
    多线程 Python
  • python多线程
    Python 多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理。 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的...
    99+
    2023-01-30
    多线程 python
  • python—多线程
    一、多线程实例  线程时应用程序中工作的最小单位,python中提供了threading模块来对多线程操作,一般多核cpu采用多进程方式,单核才采用多线程方式  方法:  将要执行的方法threading.Thread作为参数传给构造方法(...
    99+
    2023-01-31
    多线程 python
  • 彻底明白Java的多线程-线程间的通信(1)(转)
    彻底明白Java的多线程-线程间的通信(1)(转)[@more@]三. 线程间的通信1. 线程的几种状态线程有四种状态,任何一个线程肯定处于这四种状态中的一种:1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new...
    99+
    2023-06-03
  • Python多线程编程,线程锁
    多线程threading 模块创建线程创建自己的线程类线程通信线程同步互斥方法线程锁@需要了解!!!   什么是线程? 线程也是一种多任务的编程方法,可以利用计算机多核资源完成程序的并发运行。 线程又被称为轻量级进程 ...
    99+
    2023-01-30
    线程 多线程 Python
  • Python线程编程怎么突出语言的新特性
    本篇内容主要讲解“Python线程编程怎么突出语言的新特性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python线程编程怎么突出语言的新特性”吧!使用 Python 线程编程通过将线程和队列...
    99+
    2023-06-17
  • python多线程socket编程--多
    Python中实现socket通信的服务端比较复杂,而客户端非常简单,所以客户端基本上都是用sockct模块实现,而服务 端用有很多模块可以使用,如下: 1、客户端 #!/usr/bin/env python #coding...
    99+
    2023-01-31
    多线程 python socket
  • Python多线程编程
      一个串行程序需要从每个I/O终端通道来检测用户的输入,然而程序在读取过程中不能阻塞,因为用户输入的到达时间的不确定,并且阻塞会妨碍其他I/O通道的处理。由于串行程序只有唯一的执行线程,因此它需要兼顾执行的多个任务,确保其中的某个任务不会...
    99+
    2023-01-31
    多线程 Python
  • python 多线程编程
    使用回调方式 import time def countdown(n): while n > 0: print('T-minus', n) n -= 1 time.sleep...
    99+
    2023-01-31
    多线程 python
  • python多线程-Semaphore(
    Semaphore(value=1) Semaphore对象内部管理一个计数器,该计数器由每个acquire()调用递减,并由每个release()调用递增。计数器永远不会低于零,当acquire()发现计数器为零时,线程阻塞,等待其他线...
    99+
    2023-01-30
    多线程 python Semaphore
  • python 多线程+queue
    python的queue设计的是线程安全的,所以大家伙放心用吧! python多线程的一种简单的实现如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import threadi...
    99+
    2023-01-31
    多线程 python queue
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作