第二人生里使用线程循环来处理消息,这样的结构就比较清晰。比如有一个写文件的请求,就可以把这个请求放到线程队列里,然后唤醒线程,让线程处理这个请求。那么在第二人生里是怎么样构造消息循环呢?又是怎么样执行其它线程发过来的请求呢?带着这两个问题来分析下面这几段代码。#001voidLLQueuedThread::run()#002{下面实现消息循环。#003while(1)#004{#005//thiswillblockontheconditionuntilru
系统 2019-08-12 01:32:47 2269
第一周的新鲜感过去后,第二周我就能够以平常心来面对周围的新环境了。除了语言和饮食不同,终究还是软件开发的工作,一定是要遵循软件开发的规律的。在这短短的两周时间内,我谈不上有什么收获,能够让我的能力再上一个台阶。但一些体会还是有的,虽然有些散乱,仿佛思想的片段,如野马,如浮云,若能及时捕捉并加以记录,这些体会就能够潜移默化地改变自己,或许也能改变阅读这篇博客的你。这一周,我打算谈一谈我对能力的体会。作为一名Dev,能力是自己的立身之本,也是养家糊口的必须技能
系统 2019-08-12 01:32:42 2269
importos,sysimportrequestsimportbs4importpymysql#importMySQLdb#连接MYSQL数据库,第一个参数是ip地址/数据库的用户名/密码/数据库名称/端口/编码格式db=pymysql.connect(host='127.0.0.1',user='root',password='mysql',db='test',port=3306,charset='utf8')#db=MySQLdb.connect('
系统 2019-09-27 17:57:32 2268
前言从语法上来看,协程和生成器类似,都是定义体中包含yield关键字的函数。yield在协程中的用法:在协程中yield通常出现在表达式的右边,例如:datum=yield,可以产出值,也可以不产出--如果yield关键字后面没有表达式,那么生成器产出None.协程可能从调用方接受数据,调用方是通过send(datum)的方式把数据提供给协程使用,而不是next(...)函数,通常调用方会把值推送给协程。协程可以把控制器让给中心调度程序,从而激活其他的协程
系统 2019-09-27 17:56:55 2268
这里向大家分享一下python爬虫的一些应用,主要是用爬虫配合简单的GUI界面实现视频,音乐和小说的下载器。今天就先介绍如何实现一个动态视频下载器。爬取电影天堂视频首先介绍的是python爬取电影天堂网站的视频(包括电影,电视剧,综艺等),主要是用selenium动态网页技术加上简单的爬虫技术。(1)电影网站首页面地址:https://www.dytt8.net/(2)用到的技术:selenium模拟浏览器运行。(3)首先要安装配置selenium库和不同
系统 2019-09-27 17:55:46 2268
简介有时候在忙工作,女朋友发了一个消息,就撤回了,但是人天生的都有一颗好奇心,而且在当今这个时代找个女朋友不容易,一个程序猿找一个女朋友更是不容易的。人家好不容易跟你,你还不得把人家当老佛爷侍候着,侍候着也不行,还得小心翼翼地侍候着,但是声明:宏哥可能过分宠她,但绝对不是妻管严哈!因此当她撤回消息后,慌得一逼,是不是不高兴了?是不是生气了?还是发生什么事了?是不是生病了?还是我哪里惹到她了?俗话说:不干亏心事,不怕鬼叫门,虽然自己确实没有干亏心事,但是心里
系统 2019-09-27 17:55:43 2268
通过cmd启动Python需要先设置系统环境,设置步骤如下:1、首先,在桌面找到“计算机”右键找到“属性”或者按下win键再右键“计算机”找到“属性”也可以。如下图所示:2、接下来,点击完“属性”之后,进到如下图所示的界面,选择“高级系统设置”点击完“高级系统设置”之后会弹出系统属性框,所下图所示。选择弹框中“高级”下的“环境变量”点击“环境变量”之后,接下来我们要在“系统变量”里的Path后面加上Python安装路径。注意:在path后面加上一个英文“;
系统 2019-09-27 17:55:32 2268
有时候使用到获取本机IP,就采用以下方式进行。复制代码代码如下:#!/usr/bin/pythonimportsocketimportstructimportfcntldefgetip(ethname):s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)returnsocket.inet_ntoa(fcntl.ioctl(s.fileno(),0X8915,struct.pack(‘256s',ethname
系统 2019-09-27 17:54:44 2268
python实现进度条简单演示sys.stdout.write()输出不会自动换行,没有end,可用转义字符自行控制/n换行/r回车到本行首,可刷新输出如用sys.stdout.write()和\r实现自定义进度条importtimeimportsysdefmain():j=0foriinrange(100):j+=1sys.stdout.write('\r已经上传了%%%d'%(j/100*100))time.sleep(0.1)if__name__==
系统 2019-09-27 17:53:56 2268
运行环境我的运行环境如下:系统版本Windows10。Python版本Python3.5,推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,然后下载安装。IDE我使用的是PyCharm,是专门为Python开发的IDE。这是JetBrians的产品实战上面提到过,网易云音乐的网页跟普通的网页相比主要有两点不同:网页是js动态加载的使用了iframe框架
系统 2019-09-27 17:52:52 2268