每个线程都有自己的工作内存(线程栈),工作内存存储了主内存count对象的一个副本,当线程操作count对象时,首先从主内存复制count对象到工作内存中,然后执行代码count.count()方法。
shared_ptr的计数器底层是怎么实现的?(我不知道,面试官说没关系按照你自己的理解你会怎么设计,我就回答,用一个哈希表,存放资源地址和对应的指针) 那这个哈希表是全局的吗?是线程安全的吗?(是全局的,关于线程安全,我就说给他加锁) shared_ptr的循环引用问题怎么解决的?
Queue 实现的实际上是一个队列,有进有出,它实现了很多对线程友好的API offer、peek、poll,他的一个子类型叫 BlockingQueue对线程友好的API又添加了put和take,这两个实现了阻塞操作,这个是在其他的List、 Set里面都是没有的。这里面最重要的就是是叫做阻塞队列,它的实现的初衷就是为了线程池、高并发做准备的。