2018-7-22 10:28:29 回来啦!

6.条件

# !/usr/bin/env python
# !--*--coding:utf-8 --*--
# !@Time :2018/7/20 18:01
# !@Author TrueNewBee
# 条件
# 2018-7-20 18:47:17 去俺弟弟家玩去,后天归来
# 2018-7-22 10:18:03 回来了
# 条件
# 锁
# acquire release
# 一个条件被创建之初 默认有一个False状态
# False状态 会影响wait()一直处于等待状态
# notify(int数据类型) 制造一串钥匙
# 不大重要,只能停留在面试中
from threading import Condition, Thread def func(con1, i1):
con1.acquire()
con1.wait() # 等钥匙
print('在第%s个循环里' % i1)
con.release() con = Condition()
for i in range(10):
Thread(target=func, args=(con, i)).start()
while True:
num = int(input('>>>'))
con.acquire()
con.notify(num) # 造钥匙
con.release()

7.定时器

# !/usr/bin/env python
# !--*--coding:utf-8 --*--
# !@Time :2018/7/22 10:30
# !@Author TrueNewBee
# 用的不多,知道这个组件就好了
import time
from threading import Timer def func():
print('时间同步') if __name__ == '__main__':
while True:
Timer(5, func).start() # 非阻塞的
time.sleep(5)

8.队列

# !/usr/bin/env python
# !--*--coding:utf-8 --*--
# !@Time :2018/7/22 10:49
# !@Author TrueNewBee
# queue
import queue q = queue.Queue() # 队列先进先出
# q.put()
# q.get()
# q.put_nowait()
# q.get_nowait() queue.LifoQueue() # 栈 先进后出
q.put((50, 'a'))
q.put((30, 'r'))
q.put((1, 'z'))
q.put((1, 'd')) print(q.get())

9.池

# !/usr/bin/env python
# !--*--coding:utf-8 --*--
# !@Time :2018/7/22 11:19
# !@Author TrueNewBee
import time
from concurrent.futures import ThreadPoolExecutor def func(n):
time.sleep(2)
print(n)
return n*n tpool= ThreadPoolExecutor(max_workers=5) # 默认 不要超过cpu个数*5
t_list = []
for i in range(20):
t = tpool.submit(func, i) # 异步提交任务
t_list.append(t)
tpool.shutdown() # close+join
print('主线程')
for t in t_list:
print('****', t.result())

7.22 python线程(3)的更多相关文章

  1. Python学习——Python线程

    一.线程创建 #方法一:将要执行的方法作为参数传给Thread的构造方法 import threading import time def show(arg): time.sleep(2) print ...

  2. python 线程 进程

    1.进程与线程优.缺点的比较总言:使用进程和线程的目的,提高执行效率. 进程: 优点:能利用机器的多核性能,同时进行多个操作. 缺点:需要耗费资源,重新开辟内存空间,耗内存. 线程: 优点:共享内存( ...

  3. python线程入门

    目录 python线程入门 线程与进程 线程 总结 参考 python线程入门 正常情况下,我们在启动一个程序的时候.这个程序会先启动一个进程,启动之后这个进程会启动起来一个线程.这个线程再去处理事务 ...

  4. python基础-第九篇-9.1初了解Python线程、进程、协程

    了解相关概念之前,我们先来看一张图 进程: 优点:同时利用多个cpu,能够同时进行多个操作 缺点:耗费资源(重新开辟内存空间) 线程: 优点:共享内存,IO操作时候,创造并发操作 缺点:抢占资源 通过 ...

  5. 操作系统/应用程序、操作中的“并发”、线程和进程,python中线程和进程(GIL锁),python线程编写+锁

    并发编程前言: 1.网络应用 1)爬虫 直接应用并发编程: 2)网络框架 django flask tornado 源码-并发编程 3)socketserver 源码-并发编程 2.运维领域 1)自动 ...

  6. python线程信号量semaphore(33)

    通过前面对 线程互斥锁lock /  线程事件event / 线程条件变量condition / 线程定时器timer 的讲解,相信你对线程threading模块已经有了一定的了解,同时执行多个线程的 ...

  7. python线程定时器Timer(32)

    相对前面几篇python线程内容而言,本片内容相对比较简单,定时器 – 顾名思义,必然用于定时任务. 一.线程定时器Timer原理 原理比较简单,指定时间间隔后启动线程!适用场景:完成定时任务,例如: ...

  8. python线程互斥锁Lock(29)

    在前一篇文章 python线程创建和传参 中我们介绍了关于python线程的一些简单函数使用和线程的参数传递,使用多线程可以同时执行多个任务,提高开发效率,但是在实际开发中往往我们会碰到线程同步问题, ...

  9. 5分钟看懂系列:Python 线程池原理及实现

    概述 传统多线程方案会使用"即时创建, 即时销毁"的策略.尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器 ...

随机推荐

  1. 视觉单词模型、词袋模型BoW

    多用于图像检索.分类 3.2.1.4 视觉单词模型 视觉词袋(BoVW,Bag of Visual Words)模型,是“词袋”(BoW,Bag of Words)模型从自然语言处理与分析领域向图像处 ...

  2. mysql中floor函数的作用是什么?

    需求描述: 最近写mysql程序的时候,使用了floor函数,在此记录下该函数的作用 操作过程: 1.使用floor函数的测试 mysql> select floor(1.23),floor(- ...

  3. nginx 配置虚拟主机的三种方法

    nginx,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站,外部网站的管 ...

  4. 探究Visual Studio生成的.vs文件夹内部结构和作用

    https://shiyousan.com/post/636441130259624698 在某个契机的引发下,对VS解决方案中自动生成的.vs文件夹产生了兴趣,以前总对这个文件夹不怎么上心,最近正好 ...

  5. Java实现在复制文件时使用进度条

    在对大文件操作时,可能会需要些时间,此时为用户提供进度条提示是非常常见的一项功能,这样用户就可以了解操作文件需要的时间信息.本实例为大家介绍了在复制大的文件时使用的进度条提示,需要注意的是,只有在读取 ...

  6. 基于net.tcp的WCF配置实例解析(转)

    http://www.cnblogs.com/scy251147/archive/2012/11/23/2784902.html 原文 本文主要通过文件配置来讲解如何编写一个基于net.tcp的Win ...

  7. backbone学习笔记:视图(View)

    Backbone 视图对象主要用来渲染数据,监听事件. Backbone的视图对象可以展示Model数据,也可以把用户编辑的Model数据传递到后台,可以通过监听事件操作视图里的DOM元素 举例: v ...

  8. linux 端口占用情况

    1,查看8010端口是否被占用 [root@cloud ~]# netstat -an|grep 8010 tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN 2,查看8010 ...

  9. Ansible 管理任务计划

    ansible 使用 cron 模块来管理任务计划: [root@localhost ~]$ ansible 192.168.119.134 -m cron -a "name='test c ...

  10. SaltStack salt-ssh 用法

    以下在 master 操作: (1) 我们在安装部署 SaltStack 的时候,需要安装 salt 客户端,还要与 salt 服务端进行认证才能互相通信(2) 如果我们使用 salt-ssh 的方式 ...