前言 今天开始聊一聊python3的asyncio.关于asyncio,大家肯定都有自己的理解,并且网上大神也把基础概念也解释的比较透彻. 本文写作的初衷,主要是理解asyncio的原理并且实现一遍. 话不多说,我们开始! 一.知识准备 ● 理解进程.线程.协程.简单来说,这三个都是为了解决多任务同时进行的问题   1)进程是操作资源分配的最小单位,多任务的实现主要是极快地在进程间来回切换,而进程切换消耗时间最长(系统调用)   2)线程依赖于进程,多个线程共享了父进程的一部分资源,线程切换时间…
前言 书接上文,本文造第二个轮子,也是asyncio包里面非常常用的一个函数run 一.知识准备 ● 相对于run_until_complete,改动并不大,就是将入口函数重新封装了一下,基础知识主要还是run_until_complete的内容 ● asyncio.run是Python3.7之后新增的入口函数 二.环境准备 组件 版本 python 3.7.7 三.run的实现 先来看下官方asyncio的使用方法: |># more main.py import asyncio async…
前言 书接上文:,本文造第三个轮子,也是asyncio包里面非常常用的一个函数gather 一.知识准备 ● 相对于前两个函数,gather的使用频率更高,因为它支持多个协程任务"同时"执行 ● 理解__await__ __iter__的使用 ● 理解关键字async/await,async/await是3.5之后的语法,和yield/yield from异曲同工 ● 今天的文章有点长,请大家耐心看完 二.环境准备 组件 版本 python 3.7.7 三.run的实现 先来看下官方g…
前言 书接上文:,本文造第四个轮子,也是asyncio包里面非常常用,并且非常复杂的一个函数sleep 一.知识准备 ● time.sleep直接让当前线程睡觉,但是这种方式显然是不能接受的,如果当前线程睡觉,那我们所有的协程任务都会被卡主,并发也就无从谈起了 ● 理解socket.socketpair()创建的套接字对象 ● 理解selectors的应用 ● 理解最小堆以及heapq的应用 ● 理解对象比较 ● 这一小结的基础知识很多,希望大家优先了解上述的知识再开始阅读,否则很容易不知所云…
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览器的基本上底层都是selenium,驱动无线app和浏览器基本是appium.monkey之类的,底层都是基于官方支持的自动化测试框架开发而来,然后上层又做了各种封装 首先在开始计划开发自动化时,第一步是了解目前已有的自动化开发技术,上面说了,最底层的就那几种,根据实际要去测试的业务需求选择合适的自…
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一>实现了一个简陋的JSON转Model的库,不过还存在很多问题.下面我会尝试一个个去解决. 2. 存在问题及解决思路 2.1 没有考虑JSON数据并不一定是NSDictionary类型 有时候JSON并不一定是NSDictionary类型,可能是一个字符串,也可能是NSData类型的数据.不过不管是哪种类型,统…
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗忘.这段时间准备自己造一些轮子,主要目的还是为了提升自身实力,总不能一遇到问题就Google. 之前写i博客园客户端的时候,经常会遇到JSON数据转Model的功能.一般遇到这种问题我都是自己在对应Model类中定义一个+ (instance)initWithAttributes:(NSDictio…
基于学习的造轮子,这是一个最简单,最基础的一个canvas渲染引擎,通过这个引擎架构,可以很快的学习canvas渲染模式! 地址:https://github.com/RichLiu1023/h5engine 这是一个比较有意思的h5渲染引擎,我肯定写的不好,以前也从没写过这东西,出于好奇,看了下前端h5 canvas的渲染api,然后看了egret的引擎,觉得还是动手做一下比较好,于是就开始造轮子了,额这个比较有趣,从渲染模型.脏矩形.加载等一串玩意,通过一步步的实现写出来还看得过去的引擎de…
背景 目前市场上有很多表单美化的UI,做的都挺不错,但是他们都有一个共同点,那就是90%以上都是前端工程师开发的,导致我们引入这些UI的时候,很难和程序绑定.所以作为程序员的我,下了一个决定!我要自己写UI! 所以,我便自己操刀,花了半天的时间终于写了Monk.UI!刚好在Monk.Soul项目中用上(Monk.Soul是一基于ASP.NET MVC 5+SqlSugar 3.0开发的无码系统,包涵颗粒化权限控制,工作流,社区,项目管理等功能,目前完成了70%,也即将开源,敬请期待!该项目也完全…
俗语说 一个不懒的程序员不是好程序员 造轮子,也只是为了以后更好的coding. coding,简易明了的代码更是所有程序员都希望看到的 无论是看自己的代码,还是接手别人的代码 都希望一看都知道这代码是干嘛的.. UI开发中用得最多的控件之一的UIButton,大家都知道其继承于UIControl,即带响应事件的UIView 点击事件的添加大家都知道是通过 [buttonObj addTarget:target action:SEL forControlEvents:controlEvents]…