callLater】的更多相关文章

twisted reactor calllater实现 1.      calllater实现代码 测试源码: from twisted.internet import reactor from twisted.internet import defer def func_1():     print('calllater测试')     time.sleep(5)     print('calllater结束') # error handle def test_deferred_a():   …
UIComponent的方法,该方法在每次更新屏幕之前,Flash Player 或 AIR 都会调用为更新预定的函数集.有时,应在下次更新时调用函数,以执行为当前更新预定的其余代码.部分功能(如效果)可能会延迟排队的函数,直到功能完成为止.该方法在数据更新完之后,下次刷新之前可以用来做一些处理.…
1.原版和例子都在这里 在浏览器的地址栏,或者在百度.google 输入文字的时候,输入框的下面会把有关的项目都提示出来. wxPython 没有提供类似的控件,google 了一下,发现了一个,很好用. AutocompleteTextCtrl 下面是核心文件 autocomplete.py # -*- coding: utf-8 -*- __license__ = """Copyright (c) 2008-2010, Toni Ruža, All rights rese…
HTML5版的String Avoider小游戏 http://www.newgrounds.com/portal/view/300760 蛮简单也蛮考验耐心,从游戏起始点移动鼠标到终点位置,鼠标移动过程绘制出移动轨迹的String平滑曲线,整个过程不能碰撞到边界,从技术角度来说其核心就是根据鼠标移动位置生成String线的算法,该游戏是ActionScript写的Flash版,这里将其改造成HTML5版的JavaScript实现,并增加可自定义关卡功能的一种设计思路. String连线我是缓存…
catalogue . Twisted理论基础 . 异步编程模式与Reactor . Twisted网络编程 . reactor进程管理编程 . Twisted并发连接 1. Twisted理论基础 0x1: 异步编程模型 事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定.它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理.另外两种常见的编程范式是(单线程)同步以及多线程编程 在这个模型中,任务是交错完成,值得注意的是: 这是在单线程的控制下.这要比多线程模型简…
1.资源记载方式 (1)Egret引擎是2.0.5. (2)resource/resource.json文件是: { "resources": [ { "name": "bgImage", "type": "image", "url": "assets/bg.jpg" }, { "name": "egretIcon", &quo…
1.纹理集实际上就是将一些零碎的小图放到一张大图当中.游戏中也经常使用到纹理集.使用纹理集的好处很多,我们通过将大量的图片拼合为一张图片从而减少网络请求,原先加载数次的图片资源现在加载一次即可.同时,在引擎渲染的时候也会减少IO读取,从而提高性能. 2.只要发生事件,Flash就会调度事件对象.如果事件目标不在显示列表中,则Flash Player或AIR将事件对象直接调度到事件目标.例如,Flash Player将process事件对象直接调度到URLStream对象.但是,如果事件目标在显示…
最为简单的情况下,除了了解清reactor的简单使用,你还要了解Protocol和Factory.它们最终都会由reactor的侦听建立和run来统一调度起来. 建立服务器的第一个要解决的问题就是服务与外界的交流协议.协议的定义在twisted中是通过继承twisted.internet.protocol.Protocol类来实现的.在协议中你可以定义连接.数据接收.断开连接等一系列的事件如果进行响应.但是对于所有连接上来的协议的建立.持久配置数据的存储这样的内容并不会保存在协议中.      …
背景 GMock 我们项目中现在的模块测试框架使用了CATCH+GMock的方式实现回归测试和打桩. GMock的介绍在官网上有,这里为了铺垫,大概地描述一下GMock能实现的效果.大约可以看成这样: void A() {     if(B()) {         //...     }     Else{         //...     } } A是被测函数,B是桩函数. 在测试的,使用GMock的话,我们可以这样写测试代码: TEST_CASE(Test As normal case)…
概述 Unlike TCP, UDP has no notion of connections. A UDP socket can receive datagrams from any server on the network and send datagrams to any host on the network. In addition, datagrams may arrive in any order, never arrive at all, or be duplicated in…
以下是python脚本send_mms.py #############################################!/usr/bin/python# -*- coding: utf-8 -*- from twisted.application import servicefrom twisted.internet import reactor def main(counter=0): print counter, '...' if counter == 10: reacto…
python爬虫抓网页的总结 更多 python 爬虫   学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想写google music的抓取脚本的,结果有了强大的gmbox,也就不用写了. 这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上simplecd这个半爬虫半网站的项目,累积不少爬虫抓站的经验,在此总结一下,那么以后做东西也…
首先我先来看下利用Advanced Datagrid做出的效果,然后我们再对其中所利用的知识进行讲解,效果图如下: 我们来看下这个效果我们所用到的关于Advanced Datagrid的相关知识: 一.选择多个单元格及多行 所有基于List的控件都支持allowMultipleSelection属性.将allowMultipleSelection属性设置为True可以使得您在控件中一次选择不止一个条目.例如,DataGrid控件可以让您选择多行这样您就可以将他们拖放到另一个DataGrid中.…
1.与同步模型的优势: 1.有大量的任务,一个时刻内至少有一个任务要运行 2.任务执行大量的I/O,同步模型会因为任务阻塞而浪费大量时间 3.任务之间相互独立,任务内部交互少. 2.与同步模式客户端的差别: 1.异步模式会一次性与全部服务器完成连接,而不是同步模式那样一次连接一个. 2.用来通信的socket方法是非阻塞的,通过setblocking()实现. 3.select模块中的select方法用来识别监视的socket是否有完成数据接收,如果没有,则阻塞. 4.当从服务器读取数据时,会尽…
twisted.internet.reactor 是进行所有twisted事件循环的地方. reactor在1个python进程中只能有一个. 在windows下用的是select.linux下epool.mac下是pool,这点和socketserver,tornado的都一样哈(). 源码位于twisted.internet.default._getInstallFunction try: if platform.isLinux(): try: from twisted.internet.e…
早就想写一篇文章,整体介绍python的2个异步库,twisted和tornado.我们在开发python的tcpserver时候,通常只会用3个库,twisted.tornado和gevent,其中以twisted和tornado为代表的异步库的效率比较高,但对于开发者要求有点高.大家都在讨论异步效率高,那到底什么是异步,为何它的效率比较高呢?世界总是守恒的,异步效率高的同时牺牲了什么呢?我们今天就来讲讲python的异步库. 其实我们谈论的异步库都是基于计算机模型Event Loop,它不单…
wx中实现了3个线程安全的函数.如果在线程中,直接访问并更新主线程的UI,会遇到问题,有时候阻塞UI或者更新不起作用,有时严重的话会引起python崩溃. 三个安全线程如下: wx.PostEvent wx.CallAfter wx.CallLater 其中,wx.CallLater是最抽象的线程安全函数,其次是callAfter,最后是PostEvent. PostEvent用法: import time from threading import * import wx # Button d…
上一章,我们讲到,用redis共享数据,以及用redis中的队列来实现一个简单的消息传递.其实在真实的过程中,不应该用redis来传递,最好用专业的消息队列,我们python中,用到最广泛的就是rabbitmq,虽然它是用erlang开发的,但真的非常好用,经过无数次验证.如果大家不会安装rabbitmq,请看我这篇文章,http://www.cnblogs.com/yueerwanwan0204/p/5319474.html   这篇文章讲解了怎么安装rabbitmq以及简单的使用它. 我们把…
上一章开头我们说,要连接之前flask系列文章中的用户,结果篇幅不够,没有实现. 今天我们把它实现一下.话说,不同模块之间,该如何联系在一起,通常都是mysql.redis.rabbitmq还有RPC等,之所以着重讲redis,因为我太喜欢这个内存数据库了.small stong simple.这就跟我喜欢flask.tornado而不太喜欢django和twisted一样(以后我们着重讲tornado,源码比较简单直观,哈哈,虽然自己用着twisted,但真不喜欢twisted这种大型库,好多…
上一章,我们直接写了一个小例子来从整体讲述twisted运行的大致过程,今天我们首先深入一些概念,在逐渐明白这些概念以后,我们会修改昨天写的例子. 先看下面一张图: 这个系列的第一篇文章,我们已经为大家展示了一张twisted的原理图,那张图,因为我们没有捕获任何socket事件,所以只有一个圈.这张图上面的大圈代表捕获socket事件,这个也是twisted最主要的功能,它已经为我们做了.并且提供了2个函数,transport.write写入事件,dataReceived读取事件.下面的小圈子…
我们今天要做一个聊天系统,这样可以和我们之前flask api那系列文章结合起来:其次,聊天系统最能代表tcpserver,以后可以套用各种模型,比如我们公司做的物联网,其实就是把聊天系统简化一下. twisted官方网站已经为我们提供了一个非常好的例子,我们研究一下,然后在此基础上进行修改即可(这方面确实要比tornado做得好,不过tornado在阅读源码方面又有很大优势,以后我们做一个tornado版的) from twisted.internet.protocol import Fact…
这里分两种情况,一种是数据源在MXML文件里,如: <mx:XML id="treeXML" format="e4x"> <root> <node label="通知通告管理" data="0"> <node label="申报通知" data="1" /> <node label="填表须知" data=&quo…

wx

wx The classes in this module are the most commonly used classes for wxPython, which is why they have been made visible in the core wx namespace. Everything you need for building typical GUI applications is here. Class Summary Class Short Description…
下载1000次网页资源 1,普通循环方式下载1000次,非常慢 #!/usr/bin/python # -*- coding: utf-8 -*- import sys import os import time import urllib import urllib2 total_times = 1000 def worker(url): try: f = urllib2.urlopen(url,timeout=10800) body = f.read() except: print sys.…
import sqlite3 Python 的一个非常大的优点是很容易写很容易跑起来,缺点就是很多不那么著名的(甚至一些著名的)程序和库都不像 C 和 C++ 那边那样专业.可靠(当然这也有动态类型 vs 静态类型的原因). 首先,爬虫属于IO密集型程序(网络IO和磁盘IO),这类程序的瓶颈大多在网络和磁盘读写的速度上,多线程在一定程度上可以加速爬虫的效率,但是这个“加速”无法超过min(出口带宽,磁盘写的速度),而且,关于Python的多线程,由于GIL的存在,实际上是有一些初学者不容易发现的…
使用python爬虫抓站的一些技巧总结:进阶篇 一.gzip/deflate支持现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页为例,未压缩版本247K,压缩了以后45K,为原来的1/5.这就意味着抓取速度会快5倍.然而python的urllib/urllib2默认都不支持压缩,要返回压缩格式,必须在request的header里面写明’accept-encoding’,然后读取response后更要检查header查看是否有’content-encoding’一…
Reference: http://www.cnblogs.com/yueerwanwan0204/p/5589860.html 早就想写一篇文章,整体介绍python的2个异步库,twisted和tornado.我们在开发python的tcpserver时候,通常只会用3个库,twisted.tornado和gevent,其中以twisted和tornado为代表的异步库的效率比较高,但对于开发者要求有点高.大家都在讨论异步效率高,那到底什么是异步,为何它的效率比较高呢?世界总是守恒的,异步效…
Reference:http://python.jobbole.com/82000/ 一.gzip/deflate支持 现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页为例,未压缩版本247K,压缩了以后45K,为原来的1/5.这就意味着抓取速度会快5倍. 然而python的urllib/urllib2默认都不支持压缩,要返回压缩格式,必须在request的header里面写明’accept-encoding’,然后读取response后更要检查header查看是…
Flex的video类对于视频播放在ios操作系统下表现出不兼容,采用调用ios源生播放器的思路,那么怎么调呢? 话说Html5 和Flex是竞争关系,这次利用Html5的video标签实现ios播放视频,因为ios下safari浏览器解析Html5页面的video标签时自动调出源生播放器,相信聪明的你已经明白了 环境:Flex4.6 1:首先明白Flex要做的事情就是在Mobile项目中加载Html5页面 Flex封装一个用来加载Html5的容器 (HTML5Video.mxml) <?xml…
这是公司大神写的一个放官网上给用户学习的例子,我一开始真的不知道这是在干嘛,就只是将三个形状图元组合在一起,然后可以同时旋转.放大缩小这个三个图形,点击"Animate"就能让中间的那一个图元单独绕着某一个点旋转,表单最上方的"Axis"真的完全不知道拿来干嘛用的,觉得好累赘,而且是官网的demo,也没有解释...所以我今天得任务就是完全剖析这个例子! 本文例子:http://www.hightopo.cn/demo/3drotate/3d-rotate.html…