上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 44 下一页
摘要: 爬虫有很多现成的第三方库。如果自己用Gevent写一个要注意一点:gevent 检测不到 urllib的IO操作 所以不会进行切换,始终会串行的。那如果让gevnet知道urllib的IO操作呢?需要加入 monkey 好可爱的名字是不是。 1.加入MONKE... 阅读全文
posted @ 2020-04-06 11:42 jasmineTang 阅读(135) 评论(0) 推荐(0)
摘要: 协程:实现单线程下的高并发。 例如web高并发服务器,Nginx,nodejs,其实都是单线程,而如何实现上万的高并发呢,用的就是协程。 个人理解,协程快就是无论你启动了几个函数,整个程序的运行时长=最长的那个函数时长 geven... 阅读全文
posted @ 2020-04-06 11:34 jasmineTang 阅读(94) 评论(0) 推荐(0)
摘要: 进程池:用于确定同一时间有多少个进程在CPU上运行。本实例创建10个进程,每次就启用5个,就是5个5个的打印。进程池用法:1. 创建 mypool = Pool(5)2. 调用 mypool.apply_async(func=Foo, args=(i,), c... 阅读全文
posted @ 2020-04-05 17:11 jasmineTang 阅读(112) 评论(0) 推荐(0)
摘要: 与数据传递不同,数据共享,就是说两个进程都可以修改这个数据了。 只要用 Manager 即可,不需要加锁,因为manager会处理好互斥。 """数据共享:多个进程同时修改 不需要加锁Manager1.创建变量2.把变量作为参数传递给子进程"""from mu... 阅读全文
posted @ 2020-04-05 16:19 jasmineTang 阅读(80) 评论(0) 推荐(0)
摘要: 所谓数据传递,就是两个进程都可以访问这个数据,非修改。进程间数据传递有两种方式。 1.与线程一样,用Queue 2.管道 1.Queue """进程1.导入模块 是大写的Queue2.定义子进程函数 传入Queue的变量值 2.1函数形参 ()传入Qu... 阅读全文
posted @ 2020-04-05 15:58 jasmineTang 阅读(379) 评论(0) 推荐(0)
摘要: 1.线程调用两种方式:函数与类 using namespace boost;//1.函数调用//2.类调用void fun(){ cout f = boost::bind(&myClassThread::fun, this); boost::thread ... 阅读全文
posted @ 2020-04-04 21:36 jasmineTang 阅读(112) 评论(0) 推荐(0)
摘要: 线程调用两种方式:函数和类 import threadingimport timedef funs(num): # 定义每个线程要运行的函数 print("funs Thread ... 阅读全文
posted @ 2020-04-04 21:34 jasmineTang 阅读(44) 评论(0) 推荐(0)
摘要: 链表反转或者叫逆序是常用操作,网上有很多图文共有的说明文章,方法也多种多样。 其实我的理解,单链表赋值是对node->next 而非node ,而双向链表是对 node->last 和node->next的操作。 无论是单向链表还是双向的,都是... 阅读全文
posted @ 2020-04-02 16:57 jasmineTang 阅读(360) 评论(0) 推荐(0)
摘要: TCP/IP 传输 分服务器端和客户端。 要实现一个支持高并发、高性能的server服务器其实很难。 但原理上就这么6步:本文简而示之,给大家一个参考吧。 针对多客户端的处理,我这只写了个while循环。 1.创建socket实例 2.绑定 bind(... 阅读全文
posted @ 2020-04-01 18:28 jasmineTang 阅读(136) 评论(0) 推荐(0)
摘要: 承接上篇,TCP/IP可靠性传输,关注的更多的是数据完整性这类数据质量的问题。会用断点续传、文件等方式来容错。本文只是基础篇,简单的阐述一下客户端的实现。python客户端的实现就4步:1.创建实例2.连接端口 connect(,)3.发送命令 send... 阅读全文
posted @ 2020-04-01 18:27 jasmineTang 阅读(125) 评论(0) 推荐(0)
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 44 下一页