Count

mongo分页查询,同时返回分页记录和记录数

今天做了一个mongo的分页查询,记录一下mongo如何同时返回分页记录和记录数的方法,利用的是mongo的聚合查询里面的$facet阶段,具体使用参考官方文档即可https://docs.mongodb.com/manual/reference/operator/aggregation/facet/ 按照官方文档的说法, Input documents...

15分钟让你了解如何实现并发中的Barrier

说到Barrier,很多语言中已经是标准库中自带的概念,一般情况下,只需要直接使用就行了。而最近一些机缘巧合的机会,我需要在c++中使用这么个玩意儿。但是c++标准库里还没有这个概念,只有boost里面有这样现成的东西,而我又不想为了这么一个小东西引入个boost。所以,我借着这个机会研究了下,发现其实这些多线程/并发中的东西还是蛮有意思的。 阅读本文你可...

MATLAB中矩阵reshape的顺序规律

MATLAB中矩阵reshape的顺序规律 首先,使用以下代码生成一个(3,4,5)的三维矩阵: count = 0; for i = 1:3 for j = 1:4 for k = 1:5 count = count + 1; M(i,j,k) = count; end end end 如果按照三维坐标中,x,y表示水平轴,z表...

阻塞队列

阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队...

多线程下C#如何保证线程安全?

  多线程编程相对于单线程会出现一个特有的问题,就是线程安全的问题。所谓的线程安全,就是如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的。 线程安全问题都是由全局变量及静态变量引起的。   为了保证多线程情况下,访问静态变量的安全,可以用锁机制来...

mysql 统计行数count(*)

myIsam引擎把一个表的总行数存在了磁盘上,因此执行count(*)会直接返回结果,效率很高   #但是myisam不支持事物 innodb引擎需要把数据一行行从引擎里读出来,然后计数累加。 innodb由于多版本并发控制机制,同一时刻不同回话拿到的结果可能都不相同,所以不能直接将总行数存储在磁盘上。 比如同一时刻执行了三个会话 : A会话:  sele...

linux 2.6 互斥锁的实现-源码分析

http://blog.csdn.net/tq02h2a/article/details/4317211 看了看linux 2.6 kernel的源码,下面结合代码来分析一下在X86体系结构下,互斥锁的实现原理。 代码分析 1. 首先介绍一下互斥锁所使用的数据结构:struct mutex { 引用计数器 1: 所可以利用。  小于等于0:该锁已被获取,需...

智能指针shared_ptr【无锁设计基于GCC】

1. shared_ptr 介绍   使用过Boost的话对shared_ptr一定有很深的印象。多个shared_ptr指向同一个对象,每个shared_ptr会使对象的引用计数加+1,当引用计数为0时, 对象将被析构。本文实现一个简洁版本的shared_ptr,并没有太多跨平台特性,实现代码可以再GCC上运行。       本文中的引用计数由ref_c...

用C#操作图像的另一种方法——内存法

在本人的随笔 《在c#中用指针操作图片像素点》 中,介绍了两种不安全的方法,优势就在于时间效率上的提升,但是C#毕竟是安全性的语言,这里就介绍一种执行效率很高的安全方法—— 前几天在图书馆里发现了一本用C#讲图形学的书,其中就介绍了一种时间效率比指针法稍低的安全方法 //从文件中获得Bitmap对象 Bitmap bitmap = Bitmap.Fr...

C#操作MongoDB入门

1、MongoDB安装及配置   (1)下载:       mongodb官网 https://www.mongodb.com/download-center             进入官网下载页,你会发现版本都是windows Server......  但是不要担心,本人亲测win10也可以用,所以放心大胆的下载就可以了。安装过程比较简单,下一步就...