编程语言(C++/C#/Java)
C++/C#/Java编程精要
无色界神力
这个作者很懒,什么都没留下…
展开
-
线程安全的单例模式代码实现
#include <boost/noncopyable.hpp>#include <pthread.h>#include "../Thread.h"#include <stdlib.h>#include <unistd.h>namespace network{ template<typename T> class Singleton : boost::noncopyable { public: s.原创 2021-07-25 21:52:58 · 244 阅读 · 0 评论 -
生产者消费者模型
前言生产者-消费者问题,实际上主要是包含了两类线程,一种是生产者线程用于生产数据,另一种是消费者线程用于消费数据,为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库,生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为;而消费者只需要从共享数据区中去获取数据,就不再需要关心生产者的行为。但是,这个共享数据区域中应该具备这样的线程间并发协作的功能一、代码实现#include <string>#include <iostream>#in原创 2021-05-16 20:30:35 · 80 阅读 · 0 评论 -
内存池
一、使用内存池背景1、应用程序频繁地在堆上分配和释放内存,会导致性能的损失,会使系统中出现大量的内存碎片,降低内存的利用率;2、默认的分配和释放内存算法自然也考虑了性能,然而这些内存管理算法的通用版本为了应付更复杂、更广泛的情况,需要做更多的额外工作;3、而对于某一个具体的应用程序来说,适合自身特定的内存分配释放模式的自定义内存池可以获得更好的性能;二、代码实现(1)先申请一块连续的内存空间,该段内存空间能够容纳一定数量的对象;(2)每个对象连同一个指向下一个对象的指针一起构成一个内存原创 2021-05-16 20:27:40 · 87 阅读 · 0 评论 -
单链表增删改查
一、单链表增删改查代码实现#include<iostream>using namespace std;typedef struct Node { struct Node* pNext; int data;}NODE, * pNODE;/*创建单链表,头结点不存放任何数据*/pNODE CreateSingleList(void) { int length, element; pNODE pHead = (pNODE)malloc(sizeof(NO原创 2021-05-13 20:56:09 · 262 阅读 · 0 评论