Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

生成一个C++对象的成本

生成一个C++对象的成本

C用得多了,C++有些生疏,又常常用PYTHON,或者阅读些JAVA的代码,感觉C的开发者们由于C语言在软件工程上的先天缺陷,导致开发效率不高,所以决定拿出C++来看看用用,准备把libevent封装出一个类ACE的C++实现,首先来复读下C++对象模型吧。要了解new一个object的成本,最主要的就是知道,编译器会给对象分配多少内存,知道C++的对象模型无疑就了解这一点了。如果要研究C++的对象模型,大家潜意识都想知道的是,C++比C好在哪里?又比C差...
谈谈守护进程与僵尸进程

谈谈守护进程与僵尸进程

维护的第一个商业服务就用了两次fork产生守护进程的做法,前两天在网上看到许多帖子以及一些unix书籍,认为一次fork后产生守护进程足够了,各有道理吧,不过多了一次fork到底是出于什么目的呢? 进程也就是task,看看内核里维护进程的数据结构task_struct,这里有两个成员:[cpp] structtask_struct{volatilelongstate;intexit_state;...}看看include/linux/sched.h里的va...
Linux内核调度算法

Linux内核调度算法

为什么要了解内核的调度策略呢?呵呵,因为它值得我们学习,不算是废话吧。内核调度程序很先进很强大,管理你的LINUX上跑的大量的乱七八糟的进程,同时还保持着对用户操作的高灵敏响应,如果可能,为什么不把这种思想放到自己的应用程序里呢?或者,有没有可能更好的实现自己的应用,使得操作系统能够以自己的意志来分配资源给自己的进程?带着这两个问题来看看KERNEL。首先回顾上我们开发应用程序,基本上就两种类型,1、IO消耗型:比如Hadoop上的trunk服务,很明显它...
C++的多态如何在编译和运行期实现

C++的多态如何在编译和运行期实现

多态是什么?简单来说,就是某段程序调用了一个API接口,但是这个API有许多种实现,根据上下文的不同,调用这段API的程序,会调用该API的不同实现。今天我们只关注继承关系下的多态。还是得通过一个例子来看看C++是怎样在编译期和运行期来实现多态的。很简单,定义了一个Father类,它有一个testVFunc虚函数哟。再定义了一个继承Father的Child类,它重新实现了testVFunc函数,当然,它也学习Father定义了普通的成员函数testFunc...
Linux下epoll如何实现高效处理百万句柄的

Linux下epoll如何实现高效处理百万句柄的

开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。intepoll_create(intsize);intepoll_ctl(in...
浅谈时间函数gettimeofday的成本

浅谈时间函数gettimeofday的成本

我们在程序中会频繁地取当前时间,例如处理一个http请求时,两次调用gettimeofday取差值计算出处理该请求消耗了多少秒。这样的调用无处不在,所以我们有必要详细了解下,gettimeofday这个函数做了些什么?内核1ms一次的时钟中断处理真的可以支持tv_usec字段达到微秒精度吗?它的调用成本在i386/x86_64体系架构上代价一样吗?如果在系统繁忙时,频繁的调用它有问题吗?gettimeofday是C库提供的函数(不是系统调用),它封装了内核...
设计模式在C语言中的应用--读Nginx源码

设计模式在C语言中的应用--读Nginx源码

市面上的“设计模式“书籍文章,皆针对Java/C++/C#等面向对象语言,似乎离开了面向对象的种种特性,设计模式就无法实现,没有用武之地了。是这样吗?设计模式的概念是从建筑领域引入的,本身从没歧视过面向过程编程语言,它只是对一类问题的普遍解决方案而已。面向对象语言因为有类、多态等特点,使得开发者们容易达到:隐藏细节、封装变化,而这与设计模式的目的比较一致,所以大师们爱把设计模式与面向对象语言二位一体的使用。然而,存在即合理,C语言直到今日仍然在大型软件工程...
Android关于Activity切换效果的实现加强

Android关于Activity切换效果的实现加强

早前做完一个应用后期需要加入点效果化。相对于iPhone上应用的效果,最为经典的界面切换视觉效果就是,放大进入和缩小退出。还好Android也早以有了这样对应的动画文件。并且如大家所知的,提供了overridePendingTransition()这个最简单实现的方法api.------------------------但是如网上所说的:这里需要特别说明的是,关于overridePendingTransition这个函数,有两点需要主意:1.它必需紧挨着...
如何把多个Android Project打包成一个APK

如何把多个Android Project打包成一个APK

如何把多个Android Project打包成一个APK(你的项目如何引用其他项目)。如何把多个android project 打包成一个apk呢,其实原理是这样的,一个主project引用其他的project,其他project类似于jar包一样被引用,当然和jar的引用原理有很大的区别。下面是详细的说明。大部分都是翻译的官网开发向导上的文章。第一步,把普通的android project设置成库项目库项目也是一个标准的android项目,因此你先创建一...
Java中读写锁的实现及使用读写锁简单实现缓存系统的实例

Java中读写锁的实现及使用读写锁简单实现缓存系统的实例

读写锁是线程读写同一文件所需要用到的,读写锁是什么东西在这里不做过多的解释,可以自己去百度或谷歌去搜一下。谨在此附上我自己写的缓存系统的简单实现,你从中也能悟出缓存实现的基本思想缓存里面有数据就从缓存中取,没有就给你从其他地方得到。[java] packagecn.com.scl.cacheimportjava.util.HashMap;importjava.util.Map;importjava.util.concurrent.locks.ReadWri...
Java中线程安全问题个人理解

Java中线程安全问题个人理解

线程安全问题是一个比较高深的问题,是很多程序员比较难掌握的一个技术难点,如果一个程序员对线程掌握的很好的话,那么这个程序员的内功修炼的是相当的好。在这里我主要说一下我对java中如何保证线程安全的一些个人见解,希望对各位有所帮助,那里有不对的地方敬请给位不吝赐教。 线程安全问题主要出现在访问临界资源的时候,就是访问同一个对象的时候,可能会出现无法挽回的损失,特别是在关于资金安全方面的时候,当然还有数据库事务方面的问题。他们很类似,都是要保证数据的原子性。那...
对Java面向对象的的理解

对Java面向对象的的理解

对面向对象的理解可能每个人的理解程度不一样,这样就导致了写的程序的差别很大,写的质量上也回差别很大。<<Thinking In Java>>中说的好,Everything is object.每个事物都可以被看成对象,都可以被抽象成对象。怎么抽象对象呢?请记住一个原则,那就是:谁拥有数据,谁向外提供操作数据的方法。记住这个原则抽象对象就迎刃而解了。比如,你用手机打电话,是谁拨的电话呢?不明白面向对象编程的人会认为是“你”,但是用面向...
Java中传统的线程通信个人见解

Java中传统的线程通信个人见解

有一个使用共同数据的经验:要用到共同数据(包括同步锁)的若干方法,要放到同一个类里。体现了程序的高内聚,也增强了程序的健壮性。还有一个经验,把同步代码或在和锁放到共同使用的数据上,而不是放在线程内,这样的好处是什么呢:首先是更符合面向对象的思想。其次是这种设计结构非常容易实现线程的同步,并且增加线程访问共同数据的时候不用每次都在线程内增加同步代码。有利于扩展和维护。首先看一个例子,子线程先循环10次,主线程再循环100次,接着子线程循环10次,主线程再循环...
Java中多个线程访问共享数据的方式有哪些

Java中多个线程访问共享数据的方式有哪些

多个线程对共同数据的访问的实现,要根据情况而定(1)当访问共同的代码的时候:可以使用同一个Runnable对象,这个Runnable对象中有这个共享数据,比如卖票系统就可以这么做。或者这个共享数据封装在一个对象当中,然后对这个对象加锁,也可以实现数据安全访问。(2)当各个线程访问的代码不同时:这时候要使用不同的Runnable对象,有两种实现方式:a)将共享数据封装在另一个对象当中,然后将这个对象逐一的转递给各个Runnable对象。操作数据的方法也放进这...
Android应用程序下res文件夹的介绍

Android应用程序下res文件夹的介绍

res/drawable 专门存放png、jpg等图标文件。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源。res/layout 专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面。res/values 专门存放应用使用到的各种类型数据。不同类型的数据存放在不同的文件中,如下:· strings.xml 定义字符串和数值,在Activity中使用getResourc...
Android中显示尺寸单位简介

Android中显示尺寸单位简介

px (pixels)像素 一般HVGA代表320x480像素,这个用的比较多。dip或dp (device independent pixels)设备独立像素 这个和设备硬件有关,一般为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。sp (scaled pixels — best for text size)比例像素 主要处理字体的大小,可以根据系统的字体自适应。除了上面三个显示单位,下面还有几个不太常用:in (inches)英寸mm...
<< 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 >>