摘要: 在实际使用中,容易造成CPU占用偏高,笔者分析认为是由于信号量本身的缺点造成的,因此笔者重新设计了一款更高效的c#线程池,完全不使用waithandle之类的阻塞线程,而是使用更为简单的最大线程数值(一个long整数)来控制线程的运行。如果超过指定的线程数,那么保存在hash表中的线程进入等待队列,当有空闲位置时,才会释放出一个等待队列中的线程启动并运行。 笔者粗略地计算了下,此种方法比基于信号量的效率要高30左右,性能提高是显著的^_^pdf,下面为大家展示代码。 public class MyThreadManager : MyThreadPool, iThreadManager { // 阅读全文
posted @ 2011-07-16 19:38 ph580 阅读(627) 评论(1) 推荐(0) 编辑
摘要: Berkeley DB来自于Oracle,是一个高性能、嵌入式的数据库。Berkeley DB支持多种语言操作如c、c++、c#、java、perl、python、tcl等。支持同时数千线程访问操作数据库,最大256TB存储数据,广泛应用于linux、window以及其他平台。传统的Berkeley DB只支持键/值对的存储方式,而不支持关系数据库。这在一定程度上限制了Berkeley DB的应用范围,虽然Berkeley DB依然很优秀,但是也要与时俱进嘛。Berkeley DB在最新的版本中加入了对SQL语言的支持。全面兼容SQLite3的语法,这就为广大编程人员提供了更丰富的选择。因为, 阅读全文
posted @ 2011-07-16 19:37 ph580 阅读(1435) 评论(0) 推荐(0) 编辑