Tensor类中包含了两个核心成员变量 TensorShape shape_;
TensorBuffer* buf_;其中TensorBuffer类型变量定义在tensor.h文件中,继承RefCounted类.RefCounted类是一个引用计数器类.
class RefCounted {
public:
// Initial reference count is one.
RefCounted();//引用计数器类,引用计数初始化为1
// Increments reference count by one.
void Ref() const; //引用计数加一
// Decrements reference count by one. If the count remains
// positive, returns false. When the count reaches zero, returns
// true and deletes this, in which case the caller must not access
// the object afterward.
bool Unref() const;//引用计数减一,当计数为负值时返回false
bool RefCountIsOne() const;//判断引用计数是否为1
protected:
// Make destructor protected so that RefCounted objects cannot
// be instantiated directly. Only subclasses can be instantiated.
virtual ~RefCounted();//使用虚析构函数,确保只能由子类实例化
private:
mutable std::atomic_int_fast32_t ref_;//引用计数,使用了一个原子类对象,支持多线程访问
// 此处采用=delete,声明禁用拷贝构造函数与赋值构造函数
// 另外还有&