python进程和线程
文章平均质量分 89
一个两个四个三
Python领域资深菜鸟,分布式产品边缘开发,经常部署openstack
展开
-
线程和进程四--多进程和concurrent.futures模块
concurrent.futures模块:** 一次起指定数量的线程数,提交的任务在这些线程中跑,当线程中的任务执行完毕时,线程不会结束,而是保留资源,再次提交新的任务时在空闲的线程中跑新任务,而不会另起线程;优点是避免反复申请资源。............原创 2022-08-02 23:39:23 · 466 阅读 · 1 评论 -
进程和线程二--线程安全
六、线程安全: 多线程中,不同线程的函数,一个线程中的函数未执行完,被暂停插入执行另一个线程。例如:print输出日志,函数分两步,先打印字符串,然后再换行。多线程中,就在这之间发生了线程切换,这就说明print函数是线程不安全。 解决办法: print打印的字符串,作为不可变类型,作为一个整体不可分割输出。就不让print输出换行符,在字符串末尾加上换行符 使用logging模块 案例练习: import logging import threading import time logging.ba原创 2022-03-20 11:51:14 · 542 阅读 · 0 评论 -
线程和进程一--并发和并行
一、并行和并发 并行,parallel:同一个时间点,不同任务同时进行,互不干扰。 并发,concurrency:需要同时做某些事,强调的是需要处理多项事务,不一定同时进行。 —> 并行解决的是并发需求的一种方式。 —>队列、缓冲区,也是解决并发的方式。 高并发怎么解决:并行怎么样,队列怎么样,争抢怎么样? 队列、缓冲区:排队是天然解决并发需求的方法。 * 缓冲区:排成的队列,就是一个缓冲地带,就是 缓冲区。 * 优先队列:假设女生优先,食堂只有一个窗口,需要排两个队列,女生排女生的队列原创 2022-03-20 11:36:37 · 3774 阅读 · 0 评论 -
线程和进程三--线程同步二
三、threading.Rlock类 理解: 可重入锁,是线程相关的锁。线程A获得可重复锁,并可以多次成功获取,不会阻塞。最后要在线程A中做和acquire次数相同的release。 获取:threading.Rlock().acquire() 释放:threading.Rlock.release() 四、threading.Condition(lock=None)类 可传入一个Lock或Rlock对象,不传默认是RLock,Condition类方法: acquire():获取锁 wait(timeo原创 2022-03-19 23:35:53 · 2274 阅读 · 0 评论 -
线程和进程三--线程同步一
一、线程同步概念理解 线程间协同,通过某种技术,让一个线程访问某些数据的时候,其他线程不能访问这些数据,直到该线程完成对数据的操作。 涉及概念----脏读: 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。(一个线程操作的半成品数据,其他线程又来用。) 因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。 如果都未更新你就读取了,或者都更新完才读取,这都不是原创 2022-03-18 23:49:04 · 526 阅读 · 0 评论