自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wintree的专栏

专注于Linux系统编程,网络编程,高性能服务器技术,c/c++技术学习

  • 博客(19)
  • 资源 (5)
  • 收藏
  • 关注

原创 dynamic_cast, reinterpret_cast, static_cast and const_cast 学习

dynamic_cast, reinterpret_cast, static_cast andconst_cast在C语言中,经常会遇到类型转换的一些东西。类型转换分为:显示类型转换和隐式类型转换。隐式类型转换:所谓隐式类型转换就是语言本身,使用编译器,自动就给我们转成了我们需要的类型比如如下代码:short a=2000;int b;b=a;但是要主要一点,

2012-01-31 10:40:51 1587

原创 POSIX---linux多线程编程基础入门。

过年不回家了,一直在工作的地方呆着,就腾出了很多时间来学习了。前几天腾讯给打电话,问了linux下的一些知识,但是答得很不好。自我分析了一下,总结如下:1.知识学习一遍是远远不够的。还是要多学习,多揣摩,多思考。2.知识是要经常回头复习的。3.程序的工作是要多自己写代码实践,多思考。写出自己的东西。好,开始学习linux了。《线程》,对于一个程序员,如果不懂得线程,那么我觉得他

2012-01-21 00:12:33 5404 1

原创 带有头结点的简单链表实现

#ifndef LinkedList_H #define LinkedList_H #include "dsexceptions.h" #include // For NULL // List class // // CONSTRUCTION: with no initializer

2012-01-03 14:54:19 1698

原创 简单链表实现

今天元旦,不想工作。只想写一写自己想学习的东西。。今天就写了个链表的单向链表。//头文件chain.h#ifndef _chain_#define _chain_#include #include using namespace std;template class Chain;templateclass ChainNode{ friend Chain;priva

2012-01-01 16:07:25 1441

原创 ACE学习之ACE_INET_Addr,ACE_SOCK_Acceptor 源代码

ACE_INET_Addr 用来封装了基本的LINUX Socket的连接。 首先了解一个结构体 struct sockaddr_in { short sin_family; // e.g. AF_INET unsigned short sin_port; // e.g. htons(3490) struct in_ad

2012-01-31 21:18:33 3327

转载 ACE多线程编程工作(ACE_Thread_Manager,ACE_Task_Base,ACE_Task)

运用ACE_Thread_Manager类创建线程    创建线程需要要解决两个问题,一是调用线程函数,二是提供一个途径让线程能够访问到外部传递过来的参数。下面的代码演示了基本的用法:#include #include "ace/ACE.h"#include "ace/Log_Msg.h"#include "ace/Thread_Manager.h"#include #

2012-01-30 16:32:39 9948 2

原创 POSIX多线程编程-条件变量pthread_cond_t

有的时候仅仅依靠锁住共享资源来使用它是不够的。有时候共享资源只有某些状态的时候才能够使用。比方说,某个线程如果要从堆栈中读取数据,那么如果栈中没有数据就必须等待数据被压栈。这种情况下的同步使用互斥锁是不够的。另一种同步的方式--条件变量,就可以使用在这种情况下。条件变量的使用总是和互斥锁及共享资源联系在一起的。线程首先锁住互斥锁,然后检验共享资源的状态是否处于可使用的状态。如果不是,那么线

2012-01-29 14:22:02 1972

原创 阻塞与非阻塞概念

通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等待。 更多文章欢迎访问:http://blog.csdn.net/wal

2012-01-26 23:53:08 1623 1

原创 学习ACE_Reactor时候的ACE_Event_Handler 作用

很容易知道 ACE_Event_Handler 实现是采用的观察着模式 ,采用登记入 反应器, 是反应器的一个组件。就好像java的窗体事件监听处理机制。====================================================================#include "ACE/Reactor.h"#include "ACE/Event_H

2012-01-26 22:55:48 6369

转载 第3章 IPC SAP:用于高效、可移植和灵活的网络编程的C++包装

这篇文章比较好,呵呵,值得学习一下第3章IPC SAP:用于高效、可移植和灵活的网络编程的C++包装Douglas C. Schmidt本论文的一个扩展版本[1](含有在以太网和ATM网络上的性能评测)可在http://www.cs.wustl.edu/schmidt/COOTS-95.ps.Z处获取。3.1 介绍本论文描述采用C++包装类来封装OS进程间通信(IPC)机制

2012-01-25 23:01:32 2433

原创 ACE_Message_Block-----ACE消息的存储

ACE_Message_Block在Ace中用来表示消息的存放空间,可用做网络通信中的消息缓冲区,使用非常频繁,下面将在如下方简单的介绍一下ACE_Message_Block相关功能。使用案例: ACE_Message_Block * head = NULL; ACE_NEW_RETURN(head, ACE_Message_Block( sizeof( void * ) )

2012-01-25 19:55:43 5880

原创 ACE_NEW_RETURN----ACE安全机制的使用

ACE_NEW_RETURN在ACE代码中使用了很多,随处可见,看一下代码就知道这个用处了说白了就是生成一个对象,然后有个异常处理,加入了安全机制 define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) do { try { POINTER = new CONSTRUCTOR; } catch (

2012-01-25 16:49:31 5234

原创 ACE_Thread_Manager-------ACE线程管理

在一个ACE项目中使用线程是再常见不过了。然而ACE线程做到了很好的管理。使用了ACE_Thread_Manager封装了很多东西。该类是将启动的线程放到了一个双向链表里进行管理的。当我们想启动一个线程的时候,我们就可以这样的使用启动线程:void* func(void*);ACE_Thread_Manager::instance()->spawn(ACE_THR_FUNC

2012-01-25 16:26:55 12045

转载 ACE网络开发中,各种Reactor实现的总结

ACE网络开发中,各种Reactor实现的总结 现有的ACE库中提供了三种主要的Reactor实现(更多新的实现到官方网站上应该可以找到),ACE_Select_Reactor, ACE_TP_Reactor和ACE_WFMO_Reactor。三种实现的使用都有不同的注意事项:(1)ACE_WFMO_Reactor:这个实现是基于Win32的Socket Event-select模

2012-01-25 15:27:11 1995 2

原创 ACE_Reactor类学习

ACE_Reactor :      这是一个事件监听分派中心, 通过ACE_Reactor注册需要监控的事件,当事件发生时,ACE_Reactor就会自动调用注册时指定的控制程序进行处理。转:ACE Reactor 框架简化了事件驱动程序的开发,而事件驱动是许多网络化应用的特征。该框架实现Reactor模式,允许事件驱动的应用对源自许多不同事件源的事件作出反应,如I/O句柄,定时器,

2012-01-25 15:18:57 4629

转载 ACE Lock类属

ACE Lock类属锁类属包含的类包装简单的锁定机制,比如互斥体、信号量、读/写互斥体和令牌等。这里我就以互斥体为例简单的介绍一下其使用方法,对其它的锁类进行一些简单的说明。 1.互斥体的使用。 互斥体用于保护共享的易变代码,也就是全局或静态数据。这样的数据必须通过互斥体进行保护,以防止它们在多个线程同时访问时损坏。在ACE中可以通过ACE_Thread_Mutex实现线程

2012-01-24 19:01:59 1969

原创 posix多线程编程之条件变量

条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,条件变量被用来进行线承间的同步。 1.条件变量

2012-01-20 13:36:44 1413 3

原创 深入分析C++中char * 和char []的区别

问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码运行结果2293628 4199056 abc2293624 2293624 abc2293620 4199056 abc#include using nam

2012-01-19 11:49:35 21688 10

翻译 小论c++中 endl 和 '\n'的区别

What's the difference between endl and'\n'?Folks often see output statements like the two below, and then want to know what the difference is:#include int main(){  int i = 99;  std::co

2012-01-12 10:36:41 3922 1

标准库boost程序库导论(中文版).chm

标准库boost程序库导论(中文版).chm标准库boost程序库导论(中文版).chm标准库boost程序库导论(中文版).chm

2011-08-23

C++ static 用法总结

C++ static 用法总结C++ static 用法总结

2011-08-23

关于c++ 继承多态的深度思考

c++ 继承多态 深度思考c++ 继承多态 深度思考c++ 继承多态 深度思考c++ 继承多态 深度思考

2011-08-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除