摘要: Linux下的CPU负载: 指的是一段时间内任务队列的长度,通俗的讲,就是一段时间内一共有多少任务在使用或等待使用CPU。通常通过有3个数值,分别代表1,5,15钟内的平均CPU负载,越小越好。CPU负载与CPU利用率不是同一个概念。虽然CPU负载表示当前系统还有多少个任务等待处理,而CPU利用则... 阅读全文
posted @ 2014-06-26 17:13 Fly Hawk 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 1、内连接与外连接的最大区别是其查找某个定义时,所采用的策略。 内连接: 对这个定义的访问被局限在当前编译单元,其他编译单元无法访问,所以在连接时,它不会和其它的编译对象(.o/.obj)对象作比较,所以这些对象,也不能通过extern来访问。(static、const、类的成员/函数) ... 阅读全文
posted @ 2014-05-03 10:15 Fly Hawk 阅读(314) 评论(0) 推荐(0) 编辑
摘要: boost库有一个asio,支持串口通信。步骤: 1、产生一个boost::asio::io_service(前摄模式,类似于完成端口,不过,可以针对不同IO对象) 2、构造一个boost::asio::serial_port,有两种方法: (一)boost::asio::serial... 阅读全文
posted @ 2014-05-02 21:58 Fly Hawk 阅读(4217) 评论(0) 推荐(0) 编辑
摘要: 单例模式: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。特点: 1、私有的构造函数 2、私有的复制构造函数 3、私有的赋值操作符问题: 1、线程安全 2、数据的清理代码: 一般有三种写法: 方法一:一个不是线程安全的代码,而且也没有解决内存释放的问题... 阅读全文
posted @ 2014-04-19 20:35 Fly Hawk 阅读(235) 评论(0) 推荐(0) 编辑
摘要: Python中包含了两个网络模块,分别是urllib与urllib2,urllib2是urllib的升级版,拥有更强大的功能。urllib,让我们可以像读文件一样,读取http与ftp。而urllib2,则在urllib的基础上,提供了更多的接口,如cookie、代理、认证等更强大的功能。 urllib常用函数: 1、urllib.urlopen(url[, data[, proxies]]): 打开一个网址,并返回一个类似于文件的对象,对于该对对象,我们可以执行以下操作。 read(),readline(),readlines(),fileno(),close():这些方法的... 阅读全文
posted @ 2014-03-10 09:31 Fly Hawk 阅读(8308) 评论(0) 推荐(0) 编辑
摘要: 一:安装MinGW1、下载MinGW2、安装MinGW,在系统变量中添加一个MingG_home, 值为MinGW的路径,并在 “PATH” 中添加 %MinG_home%\bin;3、测试:在cmd下,输入gcc -v,会显示版本信息二、用MinGW编译boost,其实boost的大部分的库不用编译,可直接使用,但是少部分的库还是需要编译。如thread 1、在dos界面下(cmd),进入boost的解压目录 2、bootstarp.bat 3、bjam --toolset=gcc --build-type=complete --with-thread stage 注:可以使用b... 阅读全文
posted @ 2014-03-09 11:17 Fly Hawk 阅读(1595) 评论(0) 推荐(0) 编辑
摘要: 线程局部存储(tls),对于同一个local,线程无法访问其他线程设置的属性;线程设置的属性不会被其他线程设置的同名属性替换。代码: 1 import threading 2 3 local = threading.local() 4 local.tname = "main" 5 6 def func(info): 7 local.tname = info 8 print local.tname 9 10 t1 = threading.Thread(target=func, args=['funcA'])11 t2 = threading.Thread(ta 阅读全文
posted @ 2014-03-05 11:32 Fly Hawk 阅读(814) 评论(0) 推荐(0) 编辑
摘要: Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer。Timer是Thread的一个派生类 1 import threading 2 import time 3 4 def hello(name): 5 print "hello %s\n" % name 6 7 global timer 8 timer = threading.Timer(2.0, hello, ["Hawk"]) 9 timer.start()10 11 if __name__ == "__main_ 阅读全文
posted @ 2014-03-05 11:26 Fly Hawk 阅读(55617) 评论(0) 推荐(0) 编辑
摘要: Event: 是线程同步的一种方式,类似于一个标志,当该标志为false时,所有等待该标志的线程阻塞,当为true时,所有等待该标志的线程被唤醒isSet(): 当内置标志为True时返回True。set(): 将标志设为True,并通知所有处于等待阻塞状态的线程恢复运行状态。clear(): 将标志设为False。wait([timeout]): 如果标志为True将立即返回,否则阻塞线程至等待阻塞状态,等待其他线程调用set() 1 import threading 2 import time 3 4 event = threading.Event() 5... 阅读全文
posted @ 2014-03-05 11:05 Fly Hawk 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: Semphore,是一种带计数的线程同步机制,当调用release时,增加计算,当acquire时,减少计数,当计数为0时,自动阻塞,等待release被调用。而在Python中存在两种Semphore,一种就是纯粹的Semphore,还有一种就是BoundedSemaphore。区别:Semphore: 在调用release()函数时,不会检查,增加的计数是否超过上限(没有上限,会一直上升)BoundedSemaphore:在调用release()函数时,会检查,增加的计数是否超过上限,这样就保证了使用的计数代码: 1 import threading 2 import time 3 4 . 阅读全文
posted @ 2014-03-05 10:55 Fly Hawk 阅读(4024) 评论(0) 推荐(0) 编辑