【python之路36】线程相关

一、初始多线程

通过下面两个例子的运行效率,可以得知多线程的速度比单线程的要快很多

#!usr/bin/env python
# -*- coding:utf-8 -*-
import time
def print_num(arg):
    time.sleep(1)
    print(arg)
#每秒打印一个数字,速度非常慢
for i in range(10):
    print_num(i)
#!usr/bin/env python
# -*- coding:utf-8 -*-
import time
import threading
def print_num(arg):
    time.sleep(1)
    print(arg)
#多线程打印速度很快
for i in range(10):
    t = threading.Thread(target=print_num, args=(i,))
    t.start()
时间: 2024-07-31 19:44:48

【python之路36】线程相关的相关文章

python之路-------之线程

线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次执行活动,属于动态概念.在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行.就是这样的设计,大大提高了CPU的利用率.进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的.

python之路 -- 爬虫 -- 高性能相关

高性能爬虫方案: 多进程 多线程 利用"异步非阻塞"模块实现单线程并发请求. 本质 1 sk = socket() 2 # 阻塞 3 sk.connect(('www.cnblogs.com',80)) 4 5 sk.sendall(b"GET /wupeiqi http1.1\r\n.....\r\n\r\n") 6 sk.sendall(b"POST /wupeiqi http1.1\r\n.....\r\n\r\nuser=alex&pwd=

python之路--关于线程的一些方法

1. 线程的两种创建方式 from threading import Thread # 第一种创建方式 def f1(n): print('%s号线程任务'%n) def f2(n): print('%s号线程任务'%n) if __name__ == '__main__': t1 = Thread(target=f1,args=(1,)) t2 = Thread(target=f2,args=(2,)) t1.start() t2.start() print('主线程') # 第二种创建方式

Python之路:线程池

版本一 #!/usr/bin/env python# -*- coding:utf-8 -*-import Queueimport threading  class ThreadPool(object):     def __init__(self, max_num=20):        self.queue = Queue.Queue(max_num)        for i in xrange(max_num):            self.queue.put(threading.T

Python之路45-多线程

threading模块 线程有两种调用方式 直接调用 import threading import time def sayhi(num):     # 定义每个线程要执行的函数     print("running on number:%s" % num)     time.sleep(2) if __name__ == "__main__":     t1 = threading.Thread(target=sayhi, args=(1,))  # 生成一个线

python之路_django ORM相关补充

一.非django项目文件执行ORM 在不启动django项目的情况下,我们是否可以进行ORM操作呢?当然不行.因为所有的ORM操作都必须是要连接数据库的.但是我们有这样的一个需求:想在一个文件中执行ORM.该如何实现呢?参考如下实例: import os import sys import django sys.path.append(r'C:\Users\Administrator\PycharmProjects\s6day109') #将当前djang项目路径添加到环境 os.chdir(

Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程

一.线程相关的其他方法 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. ? threading模块提供的一些方法: # threading.currentThread(): 返回当前的线程对象. # threading.enumerate(): 返回一个包含正在运行的线程的list.正在运行指线程启动后.结束前,不包括启动前和终止后的线程. # threading.activeCount(

Python之路【第七篇】:线程、进程和协程

Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time   def show(arg):     time.sleep(1)     print 'thread'+str(arg)   for i in

python之路 线程、进程、协程、队列

一.线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. #!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time def show(arg): time.sleep(1) print 'thread'+str(arg) for i in range(10): t = threading.Thread(target=show, args=(i,)) t.start() print