Chapter5 深入探究文件I/O 本章节将介绍另一个与文件操作相关的系统调用:多用途的fcntl(),并展示其应用之一读取和设置打开文件的状态标志。 5.1 原子操作和竞争条件 所有系统调用都是以原子操作方式执行的。是以为内核保证了某系统调用中的所有步骤会作为独立操作而一次性加以执行,其间不会为 ...
分类:
系统相关 时间:
2017-12-17 00:13:19
阅读次数:
201
读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从 ...
分类:
其他好文 时间:
2017-12-12 21:54:08
阅读次数:
222
1,进程与线程 进程优点:同时利用多个cpu 工作,能同时进行多个操作 效率高 进程缺点:浪费内存 线程优点:共享内存,io操作的时候可以并发 线程缺点:抢占资源 进程不是越多越好 最好= cpu 线程也不是越多越好 具体案例 具体分析 请求上下文切换好时 计算机中执行任务最小单位是线程 IO密集型 ...
分类:
编程语言 时间:
2017-12-09 21:00:07
阅读次数:
232
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem;import java.nio.file.FileSystems;import java.nio.f ...
分类:
编程语言 时间:
2017-12-08 12:10:41
阅读次数:
216
1.尽量减少对mysql数据库的io操作。 2.sql语句的优化,尽量避免全表扫描(模糊查询,select *),子查询,条件查询附带函数等的sql语句。 3.数据库索引的优化,合理使用索引,对需要频繁查询的字段设置索引,索引能加快检索速度,但是过多的索引会导致数据维护麻烦(可能出现死索 两个或者两 ...
分类:
数据库 时间:
2017-12-06 00:57:02
阅读次数:
231
并发编程之协程 对于单线程下,我们不可避免程序中出现io操作,但如果我们能在自己的程序中(即用户程序级别,而非操作系统级别)控制单线程下的多个任务能在一个任务遇到io阻塞时就切换到另外一个任务去计算,这样就保证了该线程能够最大限度地处于就绪态,即随时都可以被cpu执行的状态,相当于我们在用户程序级别 ...
分类:
编程语言 时间:
2017-12-05 22:38:15
阅读次数:
203
对于单线程下,我们不可避免程序中出现io操作,但如果我们能在自己的程序中(即用户程序级别,而非操作系统级别)控制单线程下的多个任务能在一个任务遇到io阻塞时就切换到另外一个任务去计算,这样就保证了该线程能够最大限度地处于就绪态,即随时都可以被cpu执行的状态,相当于我们在用户程序级别将自己的io操作 ...
分类:
其他好文 时间:
2017-12-05 13:19:50
阅读次数:
111
1,尽量使用局部变量。 2,重用已有对象。 3,使用常量类。 4,懒加载(需要时才实例对象)。 5,少用异常,try放在最外层。 6,移位换算(a*b==a>>c)。 7,常量不可为公开,首字母大写。 8,少用静态变量。 9,尽量使用单例(控制资源的使用,通过线程同步来控制资源的并发访问, 控制实例 ...
分类:
其他好文 时间:
2017-11-26 11:15:45
阅读次数:
93
1.事件驱动模型 上一篇写的协程仅仅是切换,本身不能实现并发,什么时候切换也不知道 那么什么时候切回去呢?怎么确定IO操作完了?通过回调函数 对于事件驱动型程序模型,它的流程大致如下: 开始 >初始化 >等待 事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发。传统编程下也有“等待”的时 ...
分类:
其他好文 时间:
2017-11-26 00:40:09
阅读次数:
145
要实现的功能:在androidFramework层被裁剪掉的情况下,实现监听长按的物理power按键,实现长按3秒后关机功能;思路:使用eventepoll,非阻塞式IO操作,同时避免无差别轮询,做到避免忙轮和无差别轮询提高效率;要用到的epoll函数:epoll_create(EPOLL_SIZE_HINT);
epoll_wait(..
分类:
其他好文 时间:
2017-11-13 14:53:00
阅读次数:
171