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的更多相关文章

  1. java归并排序,单线程vs多线程

    一.什么是归并排序 归并排序又称合并排序,它是成功应用分治技术的一个完美例子.对于一个需要排序的数组A[0..n-1],归并排序把它一分为二:A[0..n/2-1]和A[n/2..n-1],并对每个子 ...

  2. python单线程,多线程和协程速度对比

    在某些应用场景下,想要提高python的并发能力,可以使用多线程,或者协程.比如网络爬虫,数据库操作等一些IO密集型的操作.下面对比python单线程,多线程和协程在网络爬虫场景下的速度. 一,单线程 ...

  3. Python-爬取校花网视频(单线程和多线程版本)

    一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...

  4. Python-爬取妹子图(单线程和多线程版本)

    一.参考文章 Python爬虫之——爬取妹子图片 上述文章中的代码讲述的非常清楚,我的基本能思路也是这样,本篇文章中的代码仅仅做了一些异常处理和一些日志显示优化工作,写此文章主要是当做笔记,方便以后查 ...

  5. 面试之二:Redis是单线程还是多线程?以及处理模型。

      Redis是单线程还是多线程?以及处理模型. 线程:单线程 处理模型:参考书<Redis 设计与实现>P151-152 ![](https://ws1.sinaimg.cn/large ...

  6. zookeeper的c API 单线程与多线程问题 cli_st和cli_mt

    同样的程序,在centos和ubuntu上都没有问题,在solaris上问题却多多,据说是solaris管理更加严格. zookeeper_init方法,在传入一个错误的host也能初始化出一个非空的 ...

  7. Operating System-Thread(5)弹出式线程&&使单线程代码多线程化会产生那些问题

    本文主要内容 弹出式线程(Pop-up threads) 使单线程代码多线程化会产生那些问题 一.弹出式线程(Pop-up threads) 以在一个http到达之后一个Service的处理为例子来介 ...

  8. JS异步解决方案之概念理解-----------阻塞和非阻塞,同步和异步,并发和并行,单线程和多线程

    首先记住一句话,JS是单线程的. 单线程意味着什么?单线程意味着 它不能依靠自己实现异步. JS实现的异步,往往都是靠 浏览器.Node 的机制(事件驱动.回调)实现的. 下面让我这个单身狗 以谈恋爱 ...

  9. Spring Boot 定时任务单线程和多线程

    Spring Boot 的定时任务: 第一种:把参数配置到.properties文件中: 代码: package com.accord.task; import java.text.SimpleDat ...

随机推荐

  1. jQuery获取元素的方式

    一.通过id选择器获取并操作元素--------$("#id属性的值") <script src="http://libs.baidu.com/jquery/1.1 ...

  2. exam8.3

    rank25凉凉好吧......T1:...        一开始完全**        手玩给的那张图(不放图,我太饿把图吃了)        发现对于任一个节点,减去上一个比他小的斐波那契数就是父 ...

  3. Educational Codeforces Round 69

    目录 Contest Info Solutions A. DIY Wooden Ladder B. Pillars C. Array Splitting D. Yet Another Subarray ...

  4. Queue Pair in RDMA (zz)

    Queue Pair in RDMA 首页分类标签留言关于订阅2018-03-21 | 分类 Network  | 标签 RDMA 一个CA(Channel Adapter)可以包含多个QP,QP相当 ...

  5. 常见的时间字符串与timestamp之间的转换 时间戳

    这里说的字符串不是一般意义上的字符串,是指在读取日期类型的数据时,如果还没有及时解析字符串,它就还不是日期类型,那么此时的字符串该怎么与时间戳之间进行转换呢? ① 时间字符串转化成时间戳 将时间字符串 ...

  6. SpringMVC 捕获参数绑定失败时的异常

    SpringMVC配置数据验证(JSR-303)中提到了用String类型的域来绑定Ajax中的非法类型的参数. 这样做的目的是一旦发生一种情况,后端可以返回一个自定类的返回值,而不是返回Spring ...

  7. [线性代数] 线性子空间入門 Basic Vector Subspaces

    导语:其他集数可在[线性代数]标籤文章找到.线性子空间是一个大课题,这里先提供一个简单的入门,承接先前关于矩阵代数的讨论,期待与你的交流. Overview: Subspace definition ...

  8. 数据库——JavaWEB数据库连接

    一.数据库连接的发展 1.数据库连接 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...

  9. Chrome和火狐插件让数以百万计用户隐私数据泄露

      https://tech.163.com/19/0721/12/EKK1PRAU00097U7R.html   网易科技讯7月21日消息,据国外媒体报道,流行浏览器诸如广告拦截等扩展功能,已经遭利 ...

  10. 如何确认oracle客户端中的TNSNAMES中的service_name

    在我们安装oracle的客户端,或者PLSQL develop的时候,需要在oracle的安装目录下修改TNSNAME中配置你要连接的数据库的TNS参数.配置好了可以通过命令行使用tnsping命令测 ...