单线程与多线程的应用 --Python3
1、单线程应用
from time import ctime, sleep
from time import ctime, sleep
class ThreadClass:
def say(self):
print('Begin say:%s' % ctime())
sleep(2)
def write(self):
print('Brgin write:%s' % ctime())
sleep(2)
if __name__ == '__main__':
t = ThreadClass()
t.say()
t.write()
print('All end:%s' %ctime())
Begin say:Wed Jun 12 17:14:11 2019
Brgin write:Wed Jun 12 17:14:13 2019
All end:Wed Jun 12 17:14:15 2019
2、多线程的应用
from time import ctime, sleep
import threading
class ThreadClass:
def say(self, content, loop):
for i in range(loop):
print('Say:%s,Time:%s' % (content, ctime()))
sleep(2)
def write(self, content, loop):
for i in range(loop):
print('Write:%s,Time:%s' % (content, ctime()))
sleep(2)
if __name__ == '__main__':
threadings = []
tc = ThreadClass()
t1 = threading.Thread(target=tc.say, args=('say content', 2))
t2 = threading.Thread(target=tc.write, args=('write content', 2))
threadings.append(t1)
threadings.append(t2)
for t in threadings:
t.start()
for t in threadings:
t.join()
print('All the end:%s' % ctime())
Say:say content,Time:Wed Jun 12 21:58:31 2019
Write:write content,Time:Wed Jun 12 21:58:31 2019
Write:write content,Time:Wed Jun 12 21:58:33 2019
Say:say content,Time:Wed Jun 12 21:58:33 2019
All the end:Wed Jun 12 21:58:35 2019
3、扩展:多进程的应用
from time import ctime, sleep
import multiprocessing
class ThreadClass:
def say(self, content, loop):
for i in range(loop):
print('Say:%s,Time:%s' % (content, ctime()))
sleep(2)
def write(self, content, loop):
for i in range(loop):
print('Write:%s,Time:%s' % (content, ctime()))
sleep(2)
if __name__ == '__main__':
multiprocessings = []
tc = ThreadClass()
t1 = multiprocessing.Process(target=tc.say, args=('say content', 2))
t2 = multiprocessing.Process(target=tc.write, args=('write content', 2))
multiprocessings.append(t1)
multiprocessings.append(t2)
for t in multiprocessings:
t.start()
for t in multiprocessings:
t.join()
print('All the end:%s' % ctime())
Say:say content,Time:Wed Jun 12 22:03:54 2019
Write:write content,Time:Wed Jun 12 22:03:54 2019
Say:say content,Time:Wed Jun 12 22:03:56 2019
Write:write content,Time:Wed Jun 12 22:03:56 2019
All the end:Wed Jun 12 22:03:58 2019
单线程与多线程的应用 --Python3的更多相关文章
- java归并排序,单线程vs多线程
一.什么是归并排序 归并排序又称合并排序,它是成功应用分治技术的一个完美例子.对于一个需要排序的数组A[0..n-1],归并排序把它一分为二:A[0..n/2-1]和A[n/2..n-1],并对每个子 ...
- python单线程,多线程和协程速度对比
在某些应用场景下,想要提高python的并发能力,可以使用多线程,或者协程.比如网络爬虫,数据库操作等一些IO密集型的操作.下面对比python单线程,多线程和协程在网络爬虫场景下的速度. 一,单线程 ...
- Python-爬取校花网视频(单线程和多线程版本)
一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...
- Python-爬取妹子图(单线程和多线程版本)
一.参考文章 Python爬虫之——爬取妹子图片 上述文章中的代码讲述的非常清楚,我的基本能思路也是这样,本篇文章中的代码仅仅做了一些异常处理和一些日志显示优化工作,写此文章主要是当做笔记,方便以后查 ...
- 面试之二:Redis是单线程还是多线程?以及处理模型。
Redis是单线程还是多线程?以及处理模型. 线程:单线程 处理模型:参考书<Redis 设计与实现>P151-152 弹出式线程&&使单线程代码多线程化会产生那些问题
本文主要内容 弹出式线程(Pop-up threads) 使单线程代码多线程化会产生那些问题 一.弹出式线程(Pop-up threads) 以在一个http到达之后一个Service的处理为例子来介 ...
- JS异步解决方案之概念理解-----------阻塞和非阻塞,同步和异步,并发和并行,单线程和多线程
首先记住一句话,JS是单线程的. 单线程意味着什么?单线程意味着 它不能依靠自己实现异步. JS实现的异步,往往都是靠 浏览器.Node 的机制(事件驱动.回调)实现的. 下面让我这个单身狗 以谈恋爱 ...
- Spring Boot 定时任务单线程和多线程
Spring Boot 的定时任务: 第一种:把参数配置到.properties文件中: 代码: package com.accord.task; import java.text.SimpleDat ...
随机推荐
- jQuery获取元素的方式
一.通过id选择器获取并操作元素--------$("#id属性的值") <script src="http://libs.baidu.com/jquery/1.1 ...
- exam8.3
rank25凉凉好吧......T1:... 一开始完全** 手玩给的那张图(不放图,我太饿把图吃了) 发现对于任一个节点,减去上一个比他小的斐波那契数就是父 ...
- Educational Codeforces Round 69
目录 Contest Info Solutions A. DIY Wooden Ladder B. Pillars C. Array Splitting D. Yet Another Subarray ...
- Queue Pair in RDMA (zz)
Queue Pair in RDMA 首页分类标签留言关于订阅2018-03-21 | 分类 Network | 标签 RDMA 一个CA(Channel Adapter)可以包含多个QP,QP相当 ...
- 常见的时间字符串与timestamp之间的转换 时间戳
这里说的字符串不是一般意义上的字符串,是指在读取日期类型的数据时,如果还没有及时解析字符串,它就还不是日期类型,那么此时的字符串该怎么与时间戳之间进行转换呢? ① 时间字符串转化成时间戳 将时间字符串 ...
- SpringMVC 捕获参数绑定失败时的异常
SpringMVC配置数据验证(JSR-303)中提到了用String类型的域来绑定Ajax中的非法类型的参数. 这样做的目的是一旦发生一种情况,后端可以返回一个自定类的返回值,而不是返回Spring ...
- [线性代数] 线性子空间入門 Basic Vector Subspaces
导语:其他集数可在[线性代数]标籤文章找到.线性子空间是一个大课题,这里先提供一个简单的入门,承接先前关于矩阵代数的讨论,期待与你的交流. Overview: Subspace definition ...
- 数据库——JavaWEB数据库连接
一.数据库连接的发展 1.数据库连接 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- Chrome和火狐插件让数以百万计用户隐私数据泄露
https://tech.163.com/19/0721/12/EKK1PRAU00097U7R.html 网易科技讯7月21日消息,据国外媒体报道,流行浏览器诸如广告拦截等扩展功能,已经遭利 ...
- 如何确认oracle客户端中的TNSNAMES中的service_name
在我们安装oracle的客户端,或者PLSQL develop的时候,需要在oracle的安装目录下修改TNSNAME中配置你要连接的数据库的TNS参数.配置好了可以通过命令行使用tnsping命令测 ...