wintree的专栏

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

dynamic_cast, reinterpret_cast, static_cast and const_cast 学习

dynamic_cast, reinterpret_cast, static_cast and const_cast 在C语言中,经常会遇到类型转换的一些东西。类型转换分为:显示类型转换和隐式类型转换。 隐式类型转换: 所谓隐式类型转换就是语言本身,使用编译器,自动就给我们转成了我们需要的...

2012-01-31 10:40:51

阅读数:1437

评论数:0

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

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

2012-01-21 00:12:33

阅读数:4721

评论数:2

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

#ifndef LinkedList_H #define LinkedList_H #include "dsexceptions.h" #include // For NULL // List clas...

2012-01-03 14:54:19

阅读数:1524

评论数:0

简单链表实现

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

2012-01-01 16:07:25

阅读数:1304

评论数:0

ACE学习之ACE_INET_Addr,ACE_SOCK_Acceptor 源代码

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

2012-01-31 21:18:33

阅读数:2825

评论数:1

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

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

2012-01-30 16:32:39

阅读数:8597

评论数:2

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

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

2012-01-29 14:22:02

阅读数:1758

评论数:0

阻塞与非阻塞概念

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

2012-01-26 23:53:08

阅读数:1380

评论数:1

学习ACE_Reactor时候的ACE_Event_Handler 作用

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

2012-01-26 22:55:48

阅读数:5340

评论数:0

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

这篇文章比较好,呵呵,值得学习一下 第3章IPC SAP:用于高效、可移植和灵活的网络编程的C++包装 Douglas C. Schmidt 本论文的一个扩展版本[1](含有在以太网和ATM网络上的性能评测)可在http://www.cs.wustl.edu/schmidt/COOTS-...

2012-01-25 23:01:32

阅读数:2003

评论数:0

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

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

2012-01-25 19:55:43

阅读数:4863

评论数:0

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

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

2012-01-25 16:49:31

阅读数:4538

评论数:0

ACE_Thread_Manager-------ACE线程管理

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

2012-01-25 16:26:55

阅读数:10001

评论数:0

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

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

2012-01-25 15:27:11

阅读数:1803

评论数:2

ACE_Reactor类学习

ACE_Reactor :       这是一个事件监听分派中心, 通过ACE_Reactor注册需要监控的事件,当事件发生时,ACE_Reactor就会自动调用注册时指定的控制程序进行处理。 转: ACE Reactor 框架简化了事件驱动程序的开发,而事件驱动是许多网络化应用的特征。该框...

2012-01-25 15:18:57

阅读数:3757

评论数:0

ACE Lock类属

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

2012-01-24 19:01:59

阅读数:1811

评论数:0

posix多线程编程之条件变量

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

2012-01-20 13:36:44

阅读数:1264

评论数:3

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

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

2012-01-19 11:49:35

阅读数:19794

评论数: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: #...

2012-01-12 10:36:41

阅读数:3594

评论数:1

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