摘要:
这个必须跟着项目做出来。 阅读全文
摘要:
TCHAR *ptch = TEXT("This is a const string.");如果使用UNICODE字符集, 则TEXT("This is a const string.")相当于L"This is a const string.", 如果使用ASCII集, 则上述字符串相当于“This is a const string.”。这样, 写的程序既可以使用UNICODE, 也可以使用ASCII, 增强了移植性。在写windows应用程序时, 如果您不确定使用UNICODE还是ASCII好, 那么推荐您使用TCHAR来替代程 阅读全文
摘要:
功能:将数据格式化到字符串中原型:int sprintf( char *buffer, const char *format, [ argument] … );返回值是这个字符串的长度上次我企图这样用char* d;int s = 88;sprintf(d, "%d", s);这样是错误的:原因是d没有分配内存但这样可以char d[20];int s = 88;sprintf(d, "%d", s);但看sprintf的原型,我更相信,d相当于int const*,c++好像将const赋给非const,这个就已经分配内存了,所以可以使用sprintf 阅读全文
摘要:
1.开启服务命令services.msc2.删除服务sc delete "服务名" 阅读全文
摘要:
barrier:栅栏的意思,当barrier bar(3),这三个线程会放到栅栏中,等第三个线程执行时一起唤醒,然后返回barrierbarrier类的接口定义如下: 1 class barrier : private boost::noncopyable // Exposition only 2 { 3 public: 4 // construct/copy/destruct 5 barrier(size_t n); 6 ~barrier(); 7 8 // waiting 9 bool wait();10 };barrier类为我们提供了这样一种控制线程同步的机制... 阅读全文
摘要:
1相关理念(1)类名条件变量和互斥变量都是boost库中被封装的类。(2)条件变量条件变量是thread库提供的一种等待线程同步的机制,可实现线程间的通信,它必须与互斥量配合使用,等待另一个线程中某个事件发生后本线程才能继续执行。(3)互斥变量互斥量是一种用于多线程编程的手段,它可以在多线程编程中防止多个线程同时操作共享资源[或称为临界区]。思想为:在每个线程开始的第一条语句使用获取互斥变量“锁有权”的语句,一旦一个线程[线程1]锁住了互斥量,那么其它线程只有等待线程1解锁互斥量后且另一线程[线程2]又获取到互斥变量的“锁有权”后才能运行这个线程[线程2]后面的代码。(4)互斥量有可能的缺点[ 阅读全文
摘要:
进程中线程同步的四种常用方式:1、 临界区(CCriticalSection)当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式:1、 定义临界区对象CcriticalSection g_CriticalSection;2、 在访问共享资源(代码或变量)之前,先获得临界区对象,g_CriticalSection.Lock();3、 访问共享资源后,则放弃临界区对象,g_CriticalSection.Unlock(); 2、 事件(CEvent)事件机制,则允许一 阅读全文
摘要:
STL 主要是由 containers(容器),iterators(迭代器)和 algorithms(算法)的 templates(模板)构成的. 对应于它们所支持的操作,共有五种 iterators(迭代器)。 input output \ / forward | bidirectional | random access ... 阅读全文
摘要:
std::shared_ptr m_spThread;m_spThread.reset(new std::thread(std::bind(&GameServer::process_thread, this)));void GameServer::process_thread(){try{proce... 阅读全文
摘要:
举个例子:sendmessage()同步,postmessage()就是异步的而对于阻塞与非阻塞个人认为是一种程序的状态,如果调用的函数或者操作不能返回就被阻塞住了,如果能立即返回就不阻塞了,细节可以看看操作系统。注意阻塞和sleep一样都会让出cpu给别的线程执行。 阅读全文