1.python线程的简单使用

import time
import threadingdef sing(a):for x in range(1,6):print('%s接收过来的参数%s'%(threading.current_thread().name,a))print('我在唱什么')time.sleep(1)
def dance(a):for x in range(1,6):print('%s接收过来的参数%s'%(threading.current_thread().name,a))print('我在跳舞')time.sleep(1)
def main():a='孙悟空'tsing=threading.Thread(target=sing,name="sing",args=(a,))#创建唱歌线程tsdance=threading.Thread(target=dance,name="dance",args=(a,))#创建跳舞线程#启动线程tsing.start()tsdance.start()#让主线程在等待子线程结束之后再结束tsing.join()tsing.join()print('主线程')
if __name__=='__main__':main()

2.面向对象的线程使用   注意线程锁的应用(后面会用到)

import threading
import time#线程之间共享全局变量  很容易产生数据混乱  这个时候要用锁
#线程锁  谁先抢到 先上锁  谁先使用
'''
创建锁
suo=threading.Lock()
上锁
suo.acquire()
释放锁
suo.release()队列(queue) 下载线程  解析线程'''#面向对象的方式线程  写一个类 继承threading.Thread
class SingThread(threading.Thread):def __init__(self,name,a):#面向对象编程  继承_init__方法必须先手动调用父类的构造方法 因为你不知道他做了什么事情super().__init__()self.name=nameself.a=adef run(self):print('%s接收过来的参数%s'%(self.name,self.a))for x in range(1,6):print('我在唱七里香')time.sleep(1)
class DanceThread(threading.Thread):def __init__(self,name,a):super().__init__()self.name=nameself.a=adef run(self):for x in range(1,6):print('我在跳广场舞')time.sleep(1)def main():tsing=SingThread('dance','猪悟能')tsdance=DanceThread()#启动线程tsing.start()tsdance.start()#让主线程在等待子线程结束之后再结束tsing.join()tsing.join()print('子线程和主线程都结束')if __name__=='__main__':main()

多线程爬虫(1)-简单线程和面向对象线程相关推荐

  1. 线程学习基础(1):单线程爬虫和多线程爬虫的效率比照

    线程学习基础:单线程爬虫和多线程爬虫的效率比照 1. 并发线程的需求 2. 线程提速方法 3. 如何选择并发编程的三种方式 3.1 什么是CPU密集型计算.IO密集型计算? 3.1.1 CPU密集型( ...

  2. 并发编程(五)python实现生产者消费者模式多线程爬虫

    并发编程专栏系列博客 并发编程(一)python并发编程简介 并发编程(二)怎样选择多线程多进程和多协程 并发编程(三)Python编程慢的罪魁祸首.全局解释器锁GIL 并发编程(四)如何使用多线程, ...

  3. Linux多线程实践(9) --简单线程池的设计与实现

    线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源.在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收.所以 ...

  4. python3线程池爬虫_python3多线程爬虫中如何变量?

    我们可以把待处理的程序看成一批需要配送的包裹,包裹在不同的货架上摆放.单人整理会比几个人一起摆放要慢的多.同样在计算机处理中,单凭借一个程序打开运行是远远不够用的,我们需要同时处理多个事物,所以多线程 ...

  5. python写爬虫4-多线程爬虫(采集58出租房信息)_python实现多线程爬虫

    前言: 本文利用python语言实现了一个多线程爬虫. 正文: 开发环境: ubuntu16.04,python3.6,bs4,virtualenv(虚拟环境) 创建虚拟环境: 创建项目文件夹,并为项 ...

  6. cpu、进程、线程、多线程的一个简单解释(转载)

    一 dljd(linux) 1.线程:一种程序可有同时有多条执行线路在执行,线程是一个程序其中正在执行的一条执行线路: 说明: 线程就是一个程序的执行线路.我们写一段程序,你要让它执行,它总得有一个执 ...

  7. 爬虫:程序_进程_线程_多线程(案例多线程下载壁纸)

    目录 前言 一.什么是程序_进程_线程? 二.实现多线程的方法 继承方式实现多线程 为什么要是用类的方式创建线程: 线程的一些常用方法: 三.多线程访问全局变量的安全性问题: 什么是线程安全: 四.解 ...

  8. python多线程爬虫实例-Python多线程爬虫简单示例

    python是支持多线程的,主要是通过thread和threading这两个模块来实现的.thread模块是比较底层的模块,threading模块是对thread做了一些包装的,可以更加方便的使用. ...

  9. Python 多线程总结(2)— 线程锁、线程池、线程数量、互斥锁、死锁、线程同步

    主要介绍使用 threading 模块创建线程的 3 种方式,分别为: 创建 Thread 实例函数 创建 Thread 实例可调用的类对象 使用 Thread 派生子类的方式 多线程是提高效率的一种 ...

最新文章

  1. detime php_php试题及答案
  2. UIScrollView无法滚动可能的原因及解决办法分析
  3. Vim的NERDTree快捷键
  4. electron-vue脚手架项目初始化时提示: Failed to download repo simulatedgreg/electron-vue: Response code Server E
  5. XX管理包括哪些功能
  6. 为C# Windows服务添加安装程序
  7. PowerDesigner物理数据模型
  8. html设置页面编码gbk,GBK及UTF-8网页编码定义与应用
  9. jQuery使用():Deferred有状态的回调列表(含源码)
  10. python迷宫起点终点所有路径_通向终点的路不止一条!python迷宫。
  11. python将excel导入生成矩阵_Python导入数值型Excel数据并生成矩阵操作
  12. 统信UOS升级Python3及安装spyder5
  13. DNS 解析出错导致 MySQL 无法连接
  14. 软件测试肖sir__009之mysql多表(4)
  15. linux学习教程-硬盘介绍和磁盘管理v11
  16. BZOJ1064【NOI2008】【假面舞会】
  17. Linux服务器下挂载存储
  18. android+wifi+bridge,Android接入说明
  19. 数字验证工程师成长的四个阶段
  20. Nginx配置文件详解说明

热门文章

  1. 订单30分钟未支付自动取消怎么实现
  2. 晋升职称考计算机,今年晋升职称计算机考试报名开始
  3. 这个好法子,能控制妈妈暴脾气,改掉孩子坏毛病!
  4. 校园跑腿/校园任务平台源码
  5. matlab减震控制,基于SMA-SPDS的小雁塔结构减震控制研究
  6. Java在线教育项目 第九天黑马头条爬虫
  7. redhat7u4 裸机离线安装bzip2(另类安装法)
  8. SSH入门项目-6-Shiro安全框架
  9. 电压偏置测量电路的固定电阻选择
  10. CSDN学院APP 升级公告说明