随笔分类 - 基础技术
摘要:由来:最近一直在想怎么高效率的在IO线程接收到数据时通知逻辑线程(基于线程池)工作的问题,像网络编程的服务器模型的一些模型都需要用到这个实现,下面我这里简单的罗列一个多线程的网络服务器模型半同步/半异步(half-sync/half-async):许多餐厅使用半同步/半异步模式的变体。例如,餐厅常常...
阅读全文
摘要:内容:本文将介绍几种常用的内存池技术的实现,这是我最近学习各大开源的内存池技术遗留下来的笔记,其主要内容包括:STL内存池以及类STL内存池实现Memcached内存池实现固定规格内存池实现Nginx内存池实现一.类STL的内存池实现方式SGI STL的内存池分为一级配置器和二级配置器,一级配置器主...
阅读全文
摘要:问题: 我们在写程序的时候经常发现程序使用的内存往往比我们申请的多,为了优化程序的内存占用,搅尽脑汁想要优化内存占用,可是发现自己的代码也无从优化了,怎么办?现在我们把我们的焦点放到malloc上,毕竟我们向系统申请的内存都是通过它完成了,不了解他,也就不能彻底的优化内存占用。来个小例子//g++...
阅读全文
摘要:最近开发一些东西,线程数非常之多,当用户输入Ctrl+C的情形下,默认的信号处理会把程序退出,这时有可能会有很多线程的资源没有得到很好的释放,造成了内存泄露等等诸如此类的问题,本文就是围绕着这么一个使用场景讨论如何正确的终止正在运行的子线程。其实本文更确切的说是解决如何从待终止线程外部安全的终止...
阅读全文
摘要:在一个数组中。若你需要频繁的计算一段区间内的和,你会怎么做?,最最简单的方法就是每次进行计算,但是这需要O(N)的时间复杂度,如这个需求非常的频繁,那么这个操作就会占用大量的CPU时间,进一步想一想,你有可能会想到使用空间换取时间的方法,把每一段区间的值一次记录下来,然后存储在内存中,将时间复杂度降...
阅读全文
摘要:目标:大家可以设想这样一个情景,公司已经部署信息化,且很多办公流程已经挪到线上正在运营的系统来解决,这带给企业的员工非常大的便利,节省办公时间,提高办公效率,可是我们把所有的流程和数据都放到了公司服务器,一旦离开了公司,我们就相当于和我们所有的办公环境脱离了,不再可以查看公司系统上的运营数据,不再可...
阅读全文
摘要:分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。分治法解题的一般步骤:(1)分解,将要解决的问题划分成若干规模较小的同类问题;(2)求解,当子问题划分得足够小时,用较简单的方法解决;(3)合并,按原问题的...
阅读全文
摘要:提问:首先我们来提两个疑问,我们自定义了一个类如Customclass类型,Customclass myclass=new Customclass()Object obj=myclass;运行上面这段代码,我们会进行装箱操作吗?基础知识:.Net的类型分为两种,一种是值类型(Value Type )...
阅读全文