随笔分类 -  python实战学习

摘要:要让python程序实现多进程,我们先了解操作系统的相关知识 Unix/Linux操作系统提供了一个fork()系统调用,他非常特殊,普通的函数调用,调用一次,返回一次,但是fork调用一次, 返回两次,因为操作系统自动把当前进程称为父进程复制了一份,然后,分别在父进程和子进程返回。 子进程永远返回 阅读全文
posted @ 2016-06-15 23:21 Commence 阅读(401) 评论(0) 推荐(0)
摘要:在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: 可以随时修改变量,比如把name改成'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的'Bill'存储到磁盘上,下次重新运行程序,变量又被初始化为'Bob'。 我们把变量从内存中变成可存储或传 阅读全文
posted @ 2016-06-15 18:50 Commence 阅读(332) 评论(0) 推荐(0)
摘要:如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成。比如dir、cp等命令。 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数。 打开Pyth 阅读全文
posted @ 2016-06-15 16:58 Commence 阅读(408) 评论(0) 推荐(0)
摘要:读写文件是最常见的IO操作。python内置了读写文件的函数。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统完成的,现代操作系统不允许普通的程序直接对磁盘进行操作,所以, 读写文件就是请求操作系统打开一个文件对象通常称为文件描述符,然后,通过操作系统提供的借口从这个文件中读取 阅读全文
posted @ 2016-06-15 16:34 Commence 阅读(13030) 评论(1) 推荐(1)
摘要:SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用当中, 甚至在IOS和Android的APP中都可以集成 Python就内置了SQlite3,所以在Python中使用Sqlite不需要安装。直接使用 在使用SQLite钱, 阅读全文
posted @ 2016-06-15 16:07 Commence 阅读(1166) 评论(0) 推荐(0)
摘要:asyncio可以实现单进程并发IO操作,如果仅用在客户端,发挥的威力并不大,如果把asyncio用在服务器端,由于http链接就是IO操作, 因此可以用单线程+coroutine实现多客户的高并发支持 异步编程的一个原则:一旦决定使用异步,则系统每一层都必须是异步,“开弓没有回头箭”。 async 阅读全文
posted @ 2016-06-15 15:55 Commence 阅读(902) 评论(0) 推荐(0)
摘要:用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。 为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和awai 阅读全文
posted @ 2016-06-14 12:56 Commence 阅读(491) 评论(0) 推荐(0)
摘要:asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。 用asyncio实现Hello worl 阅读全文
posted @ 2016-06-14 12:18 Commence 阅读(12518) 评论(0) 推荐(2)
摘要:在学习异步IO模型前,先来了解协程 协程又叫做微线程,Coroutine 子程序或者成为函数,在所有语言中都是层级调用,比如a调用b,b调用c。c执行完毕返回,b执行完毕返回,最后a执行完毕返回 所以子程序是通过栈来实现的,一个线程就是执行一个子程序 子程序调用总是一个入口一次返回,调用顺序是明确的 阅读全文
posted @ 2016-06-14 11:32 Commence 阅读(535) 评论(0) 推荐(0)
摘要:在IO编程中,我们知道CPU的速度远远快于磁盘,网络IO,在一个线程中,CPU执行速度的代码非常快,然而遇到IO操作就需要阻塞 需要等待IO操作完成才能继续下一步的动作。这种情况叫做同步IO 在IO操作的过程中,当前线程被挂起,而其他需要CPU执行的代码就无法被当前线程执行。 因为一个IO阻塞了当前 阅读全文
posted @ 2016-06-13 20:40 Commence 阅读(1570) 评论(0) 推荐(0)
摘要:在Python中可以定义可变参数,顾名思义,可变参数就是传入参数是可变的。可以是任意个,以一个简单的数学编程为例,计算 sum = a * a + b * b + .....z * z 函数定义可以如下: 但是调用的时候必须定义一个元组或者列表。比如getsum([1,2,3]) 如果利用可变参数调 阅读全文
posted @ 2016-06-12 17:17 Commence 阅读(12152) 评论(0) 推荐(0)