python_多线程
1.多线程的实现与阻塞
import time
import threading def fun_yellow(num):
for i in range(1,num+1):
print('正在拿第:'+str(i)+"个黄苹果,当前时间:"+time.ctime()+'\n')
time.sleep(1) def fun_red(num):
for i in range(1,num+1):
print('正在拿第:'+str(i)+"个红苹果,当前时间:"+time.ctime()+'\n')
time.sleep(1) thread_yellow=threading.Thread(target=fun_yellow,args=(5,))
thread_yellow.start() thread_red=threading.Thread(target=fun_red,args=(5,))
thread_red.start() #阻塞主线程
thread_yellow.join()
thread_red.join()
print('所有任务都已执行完成!')
2.多线程同步:
import time
import threading all_num=0
lock=threading.Lock() def fun_li(num):
global all_num
global lock #加锁
lock.acquire()
for i in range(1,num+1):
all_num+=1
print('李正在放第:'+str(i)+'个苹果,当前总共有:'+str(all_num)+'个苹果,当前时间:'+time.ctime()+'\n')
time.sleep(1)
#解锁
lock.release() def fun_zhang(num):
global all_num
global lock lock.acquire()
for i in range(1,num+1):
all_num+=1
print('张正在放第:'+str(i)+'个苹果,当前总共有:'+str(all_num)+'个苹果,当前时间:'+time.ctime()+'\n')
time.sleep(1)
lock.release() thread_yellow=threading.Thread(target=fun_li,args=(5,))
thread_yellow.start() thread_red=threading.Thread(target=fun_zhang,args=(5,))
thread_red.start() #阻塞主线程
thread_yellow.join()
thread_red.join()
print('所有任务都已执行完成!')
python_多线程的更多相关文章
- Python_多线程threading模块
python 在执行的时候会淡定的在CPU上只允许一个线程运行,故Python在多核CPU的情况下也只能发挥出单核的功能,其中的原因:gil锁 gil 锁 (全局解释器锁):每个线程在执行时都需要先获 ...
- python_多线程多进程
多线程,适用于IO密集型任务 IO,input,output缩写,包括网路io(比如上传下载),磁盘io,(比如数据库读写),CPU操作不频繁 多进程,适用于CPU密集型任务 数据分析,算法,依赖CP ...
- Python_多线程1(创建线程,简单线程同步)
threading 模块除了包含 _thread 模块中的所有方法外,还提供的其他方法: threading.currentThread(): 返回当前的线程变量. threading.enumera ...
- Python_关于多线程下变量赋值取值的一点研究
关于多线程下变量赋值取值的一点研究 by:授客 QQ:1033553122 1.代码实践1 #!/usr/bin/env python # -*- coding:utf-8 -*- __author_ ...
- python_并行与并发、多线程
问题一: 计算机是如何执行程序指令的? 问题二: 计算机如何实现并发的? 轮询调度实现并发执行 程序1-8轮询完成,才再CPU上运行 问题三: 真正的并行需要依赖什么? 并行需要的核心条件 多进程实现 ...
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- Java多线程
一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程. 进程:进程 ...
随机推荐
- FileHelper-文件操作工具
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- TensorFlow 8 bit模型量化
本文基本参考自这篇文章:8-Bit Quantization and TensorFlow Lite: Speeding up mobile inference with low precision ...
- Cordova 实现沉浸式(透明)状态栏效果
沉浸式状态栏(Immersive Mode)和透明状态栏(Translucent Bar). 这两个概念很多地方的解释都不是很清晰,所以导致很多人都各有各的认识.所以这里我也有一个自己的认识,笔者认为 ...
- RTSP Spectification
Refer: https://www.ietf.org/rfc/rfc2326.txt Network Working Group H. SchulzrinneRequest for Comments ...
- 转 python2 与 python3 的编码
原文链接:https://blog.csdn.net/xufive/article/details/102726739 引文如下: 无论是py2还是py3,都使用unicode作为内存编码,简称内码. ...
- (转) C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库
原贴链接:https://www.cnblogs.com/mq0036/p/11052359.html C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracl ...
- 【笔试题】Overloading in Java
笔试题 Overloading in Java Question 1 以下程序的输出结果为( ). public class Test { public int getData() { return ...
- C# DataTable、DataSet、List、相互转换
DataTable转LIst /// <summary> /// 利用反射将DataTable转换为List<T>对象 /// </summary> /// & ...
- ConcurrentDictionary,ConcurrentStack,ConcurrentQueue
static void Main(string[] args) { var concurrentDictionary = new ConcurrentDictionary<int, string ...
- Charles配置https
1. 安装Charles ,破解将Charles.jar 覆盖安装路径的\lib 中的文件 2. 查看本机IP 3. 设置手机代理 4. 设置: 5. 手机安装证书 手机浏览器输入网址:chls.pr ...