上一页 1 2 3 4 5 6 7 8 9 ··· 46 下一页
摘要: 重复过滤 注意 DISTINCT去重的时候要位于所有列的最前面 DISTINCT后面跟着多个字段,则会对多个字段进行组合去重,只有多个字段组合起来的值是相等的才会被去重 未做重复过滤 SELECT vend_id FROM products; 重复过滤之后 SELECT DISTINCT vend_ 阅读全文
posted @ 2022-07-08 10:55 cnhkzyy 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 显示表列 SHOW COLUMNS要求给出一个表名,它对每个字段返回一行,行中包含字段名、数据类型、是否允许为空、是否允许NULL、键信息、默认值及其他信息 SHOW COLUMNS FROM customers; 显示广泛的服务器的状态信息 SHOW STATUS 显示建库语句 SHOW CREA 阅读全文
posted @ 2022-07-08 10:21 cnhkzyy 阅读(31) 评论(0) 推荐(0) 编辑
摘要: ssh分布式自动化测试框架是怎么做的? 详情见《使用pytest-xdist实现分布式APP自动化测试:基于SSH》 接口自动化测试框架介绍 x项目上线周期较短,任务较重,从立项到上线只有半年的时间,因此希望能够提前介入到接口测试,尽早发现项目底层的一些bug,保障功能测试能够平稳进行,以及做好迭代 阅读全文
posted @ 2022-07-06 18:07 cnhkzyy 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 代码 import flask from concurrent.futures import ProcessPoolExecutor import math import json app = flask.Flask(__name__) def is_prime(n): if n < 2: retu 阅读全文
posted @ 2022-07-05 22:28 cnhkzyy 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 有了多线程threading,为什么还要用多进程multiprocessing 多进程multiprocessing知识梳理(对比多线程threading) 代码实战:单线程、多线程、多进程对比CPU密集计算速度 tmp/06.thread_process_cpu_bound.py import m 阅读全文
posted @ 2022-07-05 00:08 cnhkzyy 阅读(101) 评论(0) 推荐(0) 编辑
摘要: web服务的架构以及特点 使用线程池ThreadPoolExecutor加速 加速前 tmp/05.falsk_thread_pool.py 这三种模拟的场景(读文件、读数据库、访问API)都是IO,使用sleep就相当于做了一次IO import flask import json import 阅读全文
posted @ 2022-07-04 23:06 cnhkzyy 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 线程池的原理 使用线程池的好处 ThreadPoolExecutor的使用语法 使用future import concurrent.futures import blog_spider # craw with concurrent.futures.ThreadPoolExecutor() as p 阅读全文
posted @ 2022-07-04 22:05 cnhkzyy 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 线程安全概念介绍 Lock用于解决线程安全问题 未加锁导致重复扣款 现在有一个取钱的功能,如果账户余额大于取钱数量的时候,就会进行取钱操作,启动2个线程,并发的去取钱,可能会出现余额不足,但也能进行取钱的操作,如果加了等待时间,这个现象是必现的,因为sleep会造成线程的阻塞,导致线程的切换 tmp 阅读全文
posted @ 2022-07-02 21:00 cnhkzyy 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 多组建的pipline技术架构 生产者消费者爬虫的架构 多进程数据通信的queue.Queue 线程安全:指的是多个线程不会冲突 get和put方法是阻塞的:当里面没有数据的时候,q.get()会卡住,直到里面有了数据把它取出来,q.put()当队列满了以后会卡住,直到有一个空闲的位置才能put进去 阅读全文
posted @ 2022-07-02 20:14 cnhkzyy 阅读(100) 评论(0) 推荐(0) 编辑
摘要: python创建多线程的方法 单线程、多线程爬取博客园速度对比 tmp/blog_spider.py import requests urls = [ f"https://www.cnblogs.com/#p{page}" for page in range(1, 50+1) ] def craw( 阅读全文
posted @ 2022-07-02 17:25 cnhkzyy 阅读(212) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 46 下一页