- 博客(56)
- 资源 (1)
- 收藏
- 关注
转载 在删除选项中仔细选择
条款9:在删除选项中仔细选择假定你有一个标准STL容器,c,容纳int,Container c; 而你想把c中所有值为1963的对象都去掉。令人吃惊的是,完成这项任务的方法因不同的容器类型而不同:没有一种方法是通用的。如果你有一个连续内存容器(vector、deque或string——参见条款1),最好的方法是erase-remove惯用法(参见条款32):c.erase
2007-06-29 10:34:00 874
原创 标准库:容纳指针的容器
The Standard Librarian: I/O and Function Objects: Containers of PointersMatthew Austernhttp://www.cuj.com/experts/1910/austern.htm?topic=experts-----------------------------------------------
2007-06-28 14:51:00 1928
转载 用chkconfig轻松管理启动程序
由 徐永久 发表于 2001年10月16日 21:07。 想知道Linux 下面和 autoexec.bat 或者 config.sys 或者 98 的 msconfig 一样的东西么? 简介:本文通过对chkconfig 的介绍,为Linux 系统管理员 轻松管理 /etc/rc[0-6].d 目录下众多的符号
2007-06-27 21:24:00 628
转载 Linux文件类型及文件的扩展名
1、Linux文件的扩展名; 一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt、 file.doc、file.sys、file.mp3、file.exe等,根据文件的后缀就能判断文件的类型。但在Linux一个文件是否能被执行, 和后缀名没有太大的关系,主要看文件的属性有关。但我们了解一下Linux文件的后缀名还是有必要的,特别是我们自己创建一些文件,最好还
2007-06-27 21:21:00 678
转载 C语言中可变参数的用法
C语言中可变参数的用法 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf() 这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是 可变的,例如我们可以有以下不同的调用方法: printf("%d",i); printf("%s",s); printf("t
2007-06-27 19:20:00 698
转载 利用消息队列来实现IPC
晚上在FC4下调试出了第一个linux程序,成功地运行,有点成就感,虽然这个程序是抄过来. 本程序的功能是利用系统V(Sys V)消息队列来实现进程间的通信(IPC). 简单地介绍程序: 用到的一个数据结构-------消息,用一个结构体来表示: struct msgbuf
2007-06-25 11:02:00 3152 2
原创 一个读线程,一个写线程同时操作一个套接字
一个读线程,一个写线程同时操作一个套接字是没问题的,但必需主意一点:做错误处理时非法同步的准备,即保证在出现SOCKET错误时只有一个处理函数被调用,而不是2个线程同时调用2个,否则将发生问题
2007-06-25 09:46:00 1831
转载 基于TCP/IP的局域网多用户通信
基于TCP/IP的局域网多用户通信作者:华东船舶工业学院机械系 袁 渊下载本文示例源代码摘要:基于TCP/IP的网络通信技术实现了面向连接的用户与服务器间点对点异步通信,本文在该基础上应用了多线程以及共享数据结构技术,使网络服务器具有了多用户间数据转发的功能,进而解决了局域网多用户间的通信问题。关键词:TCP/IP;多线程;共享;通信;网络引言由于因特网的迅速流行,越来越多的应用程
2007-06-24 15:34:00 1055
转载 使用JAVA建立稳定的多线程服务器
本文详细的介绍了使用Java语言建立一套多线程服务器的过程,该服务器使用对象传递消息,在线程中使用队列机制,使服务器的性能大大提高了。这套服务器可以被用于各种C/S或B/S结构的应用程序中。 Java语言是完全面向对象的,它的线程机制和对象序列化特别容易使用,使用Java来建立一套多线程服务器要比使用其它语言方便的多,如果你再把它的异常处理机制利用好,那么你就可以建立一个商业级的多线程服务
2007-06-24 15:21:00 760
转载 线程安全的队列
#ifdef WIN32 #include #else #include #include #endif #include #include #include #include using namespace std; //这个是线程安全的队列,Synchronized类的实现在下面 template class SyncQueue:public Synchronized{
2007-06-23 13:37:00 1972
转载 UNIX多线程数据共享与线程同步
作者:杨海平 姚洪利 本文选自:中国计算机报 2001年12月18日 在UNIX中,一个进程让另外实体进行某项事务而采取的操作为fork的一个子进程,子进 程只是将父进程的数据区拷贝一份到自己的数据区。在符合POSIX标准的UNIX操作系统下 ,同一个进程的线程之间共享进程指令、大多数数据(线程私有数据除外)、信号处理 方式、进程运行环境等。由于线程共享进程的全局变量,因此可以采用用户
2007-06-22 15:38:00 2340
转载 linux使用top命令察看系统进程信息
top命令 top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如? 前台执行该命令,它将独占前台,直到用户终止该程序为止。 比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用。内存使用和执行时 间对任务进行排序;而且
2007-06-22 15:20:00 1205
转载 C++的数据类型转换关键字dynamic_cast
C++的数据类型转换关键字dynamic_cast 作者:抱雪 更新时间: 2005-05-13
2007-06-20 23:45:00 800
转载 有关效率
list支持快速的插入和删除,但是查找费时 vector支持快速的查找,但是插入费时 如果你从百万个数据文件中读取数据,你可以考虑先把数据全部读到vector中,然后排序,再用binary_search算法查找,这个算法如果搭配的是随机iterator,复杂度是对数的。这个复杂度和map的查找复杂度一样的快。因此,不考虑内存问题,按你的意图,vector是更好的选择。C++标准
2007-06-20 21:25:00 1197
转载 Posix线程编程指南(5)杂项
这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第五篇将向您讲述pthread_self()、pthread_equal()和pthread_once()等杂项函数。 在Posix线程规范中还有几个辅助函数难以归类,暂且称其为杂项函数,主要包括pthread_self()、pthread_equal()和 pthread_once
2007-06-20 09:54:00 648
转载 Posix线程编程指南(3) Posix线程编程指南(3)线程同步
2001 年 10 月 01 日这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第三篇将向您讲述线程同步。 互斥锁 尽管在Posix Thread中同样可以使用IPC的信号量机制来实现互斥锁mutex功能,但显然semphore的功能过于强大了,在Posix Thread中定义了另外一套专门用于线程同步的mutex函
2007-06-20 09:52:00 894
转载 Posix线程编程指南(4)
杨沙洲 (pubb@163.net)2001 年 11 月 01 日这是一个关于Posix线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述Posix线程库API。本文是第四篇将向您讲述线程中止。 线程终止方式 一般来说,Posix的线程终止有两种情况:正常终止和非正常终止。线程主动调用pthread_exit()或者从线程函数中return都将使线程正 常退出,这是可预见的退
2007-06-20 09:43:00 594
原创 点击过万,再庆祝一下!!!
博客点击终于过万了.随着博客文章的不断增加,我对linux的理解也不断深入.希望不久的将来能有自己的有深度的原创作品出来.
2007-06-18 14:39:00 640
转载 postfix简介
一、 postfix概述 postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。下面一段话摘自postfix的官方站点(http://www.postfix.org):“postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有
2007-06-17 15:40:00 1382
转载 华为软件编程规范和范例
¹1-1 :程序块要采用缩进风格编写,缩进的空格数为4 个 说明:对于由开发工具自动生成的代码可以有不一致。 ¹1-2 :相对独立的程序块之间、变量说明之后必须加空行 示例:如下例子不符合规范。 if (!valid_ni(ni)){ ... // program code}repssn_ind = ssn_data[index].repssn_ind
2007-06-17 15:34:00 757
转载 C++ STL中用vector 改进内存的再分配
硬件准备: 笔记本电脑 (测试HP 6120) 蓝牙手机 (测试Moto L2) 蓝牙USB dongle (推荐CSR 芯片)软件准备: Windows XP :) IVT BlueSoleil (测试 Version3.0)
2007-06-15 14:50:00 882
原创 C++中的容器类
STL主要由两种组件构成:一是容器,包括vector,list,set,map等,另一种组件是用以操作这些容器类的所谓泛型算法,如find(),sort()等. 其中,vector和list这两种容器是序列式容器.所谓序列式容器就是会依此维护第一个元素,第二个元素...直到最后一个元素.我们在序列式容器身上主要进行所谓的迭代操作.map和set这两种容器属于关联式容器.关联式容器可以让我们快速
2007-06-15 14:21:00 1150
转载 在C++使用Vector动态保持结构数组信息
比如我们要取系统的日志信息,如果先获取到日志个数然后再分配空间的话,时间会比较长,影响效率。如果使用Vector动态添加的话,问题就解决了。在这个例子里,自定义了一个类,在类中使用双重的Vector来保存信息。/**//*----------------------------------------------------------------// Copyright (C)
2007-06-15 13:59:00 2280
转载 使用pthread库进行多线程编程
11 Threads1 Introduction不用介绍了吧…2 Thread Concepts1. Thread由下面部分组成:a. Thread IDb. Stackc. Policyd. Signal maske. Errnof. Thread-Specific Data3 Threa
2007-06-14 09:40:00 3018
转载 高级进程控制和信号
作者:FinalBSD 出处:www.chinaunix.net 更新时间: 2006年05月12日 第四章 高级进程控制和信号翻译: gvim@chinaunix/bsd 一些说明:1 很高兴有这个机会参与到这项活动中来。2 由于英语语言的习惯,文中有不少复杂长句,按照字面翻译出来并不适合中国人的阅读习惯。我在保留文章原意的基础上作了一些语言组织上的调整,将大部分长句子组织成中文擅长
2007-06-14 09:21:00 1417
转载 线程中的信号处理
概念 pthread_sigmask pthread_kill 和 sigwait7.5.1 概念 按照 POSIX, 异步 (外部) 信号发送到整个进程. 所有线程共享同一个设置, 即通过 sigaction 设置的线程处置方法. 每个线程有自己的信号掩码, 线程库根据该掩码决定将信号发送到哪个线程. 由
2007-06-14 08:58:00 1428
转载 深入研究 C++中的 STL Deque 容器(三)
实验四—— vector::insert() 和 deque::insert() 执行特点比较 目的 deque主张使用参数为常量的insert()。但怎么样能和vector::insert()比较一下呢?本实验的目的就是比较一下vector::insert()> 和 deque::insert()的工作特点。 描述 在容器的容器多次插入数据,在这里可能不符合你的需求,既然这样你可以使
2007-06-13 20:33:00 1003
转载 深入研究 C++中的 STL Deque 容器(二)
实验二—— vector::reserve()的资源 目的 这个实验的目的是vector在加入大量数据之前调用reserve(),和deque进行比较,看它们的内存分配和执行效率怎么样? 描述 本实验中的测试基本上和实验一相同,除了在测试类的构造函数中加入下面这行代码: m_vData.reserve(1000000);
2007-06-13 20:31:00 903
转载 深入研究 C++中的 STL Deque 容器(一)
本文档深入分析了std::deque,并提供了一个指导思想:当考虑到内存分配和执行性能的时候,使用std::deque要比std::vector好。 介绍 本文深入地研究了std::deque 容器。本文将讨论在一些情况下使用deque> 比vector更好。读完这篇文章后读者应该能够理解在容量增长的过程中deque 与vector在内存分配和性能的不同表现。由于deque> 和vecto
2007-06-13 20:30:00 1060
转载 使用同步对象编程
3 使用同步对象来编程 本章定义了四种可用的同步类型,并且讨论实现同步的注意事项。 互斥锁(mutex) 条件变量(condition variable) 多读单写锁(multi-read,single-write lock) 信号量(semophore) 进程间同步(process synchronizati
2007-06-13 20:26:00 816
转载 关于容器的选择
[C++标准程序库的问题] list的迭代器是否可以随机移动? 答:由于list的内部实现是双向链表,链表就要求迭代器(指针)只能依次从前向后(或从后向前)移动,依次移动一个位置,因此list只定义了++和- -操作符,而没有定义+、-、+=和-=等操作符。所以要想list的迭代器移动一段距离,就需要自己编程实现,用一个小循环就行了,代码如下: #include using namespa
2007-06-13 19:01:00 635
转载 一个TCP/IP转发的列子
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef _SCO_DS #include #endif #include #define
2007-06-13 13:59:00 2004
转载 领导者-追随者(Leader/Followers)模型的比喻
领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型都是常用的客户-服务器编程模型.这几天翻了些文章,发现对领导者/追随者模型说的比较少,下面就这个模型打个比方: 话说一个地方有一群有组织无纪律的人从事山贼这个很有前途的职业。 一般就是有一个山贼在山路口察看,其他人在林子里面睡觉。
2007-06-12 19:47:00 1169
转载 linux 2.6内核epoll用法举例说明(续)-
linux 2.6内核epoll用法举例说明(续)--给echo服务器增加读线程池上篇文章使用linux内核2.6提供的epoll机制实现了一个反应式echo服务器,使用反应式服务器的最大好处就是可以按cpu的数量来配置线程池内线程的线程数而不是根据客户端的并发量配置线程池。我是第一次使用pthread库来写线程池,使用的是工作队列方式的线程池。我感觉作队列方式的线程池可以当成一种设计模式来用
2007-06-07 23:06:00 1563
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人