- 博客(136)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 C++11的异步操作(std::future,std::promise,std::packaged_task,std::async )
C++11的异步操作(std::future,std::promise,std::packaged_task,std::async )
2023-12-02 09:36:53 182
原创 C++11的互斥量
互斥量是一种同步原语,是一种线程同步的手段,用来保护多线程同时访问的共享数据。C++11中提供了如下4种语义的互斥量(mutex):1、std::mutex:独占的互斥量,不能递归使用。2、std::mutex_mutex:带超时的独占互斥量,不能递归使用。3、std::recursive_mutex:递归互斥量,不带超时功能。4、std::recursive_timed_mutex:带超时的递归互斥量。
2023-11-27 10:29:28 513
原创 C++11的线程
用std::thread创建线程非常简单,只需要提供线程函数或者线程对象即可,并可以同时指定线程函数的参数。在上例中,函数func将会运行于线程对象t中,join函数将会阻塞,直到线程函数执行结束,如果线程函数有返回值,返回值将被忽略。如果不希望线程被阻塞执行,可以调用线程的detach方法,将线程和线程对象分离。通过detach,线程就和线程对象分离了,让线程作为后台线程去执行,当前线程也不会阻塞了。
2023-11-24 09:28:23 427
原创 C++11的weak_ptr弱引用的智能指针
弱引用指针weak_ptr是用来监视shared_ptr的,不会使引用计数器加1,它不管理shared_ptr内部的指针,主要是为了监视shared_ptr的生命周期,更像是shared_ptr的一个助手。weak_ptr没有重载操作符*和->,因为它不共享指针,不能操作资源,主要是为了通过shared_ptr获得资源的监测权,它的构造函数不会增加引用计数,它的析构不会减少引用计数,纯粹只是作为一个旁观者来监视shared_ptr中管理的资源是否存在。
2023-11-22 09:34:18 243
原创 C++11的unique_ptr独占的智能指针
unique_ptr不允许复制,但可以通过函数返回给其他的unique_ptr,还可以通过std::move来转移到其他的unique_ptr,这样它本身就不再拥有原来指针的所有权了。unique_ptr是一个独占型的智能指针,它不允许其他的智能指针共享其内部的指针,不允许通过赋值将一个unique_ptr赋值给另外一个unique_ptr。而std::shared_ptr ptr(new int [10]);
2023-11-21 09:12:49 62
原创 forward和完美转发
TestForward(1):由于1是右值,所以未定的引用类型T&&v被一个右值初始化后变成了一个右值引用,但是在TestForward函数体内部,调用PrintT(v)时,v又变成了一个左值(因为在这里它已经变成了一个具名的变量,所以它是一个左值),因此,第一个PrintT被调用,打印出了"lvalue"。std::move(value)是独立于值的右值引用,一个右值引用参数作为函数的形参,在函数内部再转发该参数的时候已经变成了一个左值,并不是它原来的类型了。上面的参数都没有按照原本的类型进行转发。
2023-11-03 20:38:53 164
原创 C++11的for循环
在C++03/98中,不同的容器和数组,遍历的方法不尽相同,写法不统一,也不够简洁,而C++11基于范围的for循环以统一,简洁的方式来遍历容器和数组,用起来更方便了。
2023-10-21 15:16:28 352
原创 句柄类_2
#include <iostream>#include <stdlib.h>using namespace std;/*好事多磨,本来今天不想抄这章代码,看下一章节的,但是,我想了想,小说不可能章章都精彩*////业务处理类class Point{public: Point() :xval(0), yval(0){} Point(int x, int y) : xval(x), yval(y){} int x() const { ret...
2022-04-23 13:51:59 1213
原创 验证C++中的虚函数表的存在
///从网上抄来的,做了点修改,能正确运行出来而已#include <stdio.h>#include <iostream>using namespace std;///基类,有2个成员变量width和height,有2个虚函数和一个成员函数class Shape{public: Shape(int a = 0, int b = 0) { width = a; height =b; } virt...
2022-04-04 00:05:26 1127
原创 getaddrinfo函数
碰到一个问题:有线网络连对方服务器一直都是正常的,设备开了4G功能,在底层设置ip之前连接平台连不上,重连机制也连不上,对方加打印发现,getaddrinfo函数只要连了一次连不上,重连就一直连不上,suoy...
2021-06-05 11:03:51 152
MultiTask.zip
2019-12-25
为什么obj已经强转成基类指针,可以调用f函数
2019-05-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人