Chromium:多线程通信机制

Chromium:多线程通信机制

bingliaolong Chromium 4年前 30 0

closure Chromium多线程通信用到的Closure实际上是一个特殊的Callback。 如果把上面创建的Callback对象看作是一个Closure,那么它首先会被发送到目标线程的消息队列中,然后再在目标线程中调用它的成员函数Run,最后就会导致函数MyFunc在目标...

Linux高性能服务器编程:TCP/IP协议族

Linux高性能服务器编程:TCP/IP协议族

bingliaolong Linux 4年前 2 0

TCP/IP协议族 TCP/IP是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。 数据链路层 实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。 常用协议 ARP RARP 网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此...

chromium:智能指针

chromium:智能指针

bingliaolong Chromium 4年前 17 0

概述 在广义上,智能指针划分为两类。 第一类智能指针引用的对象是可以共享的,也就是一个对象可以同时被多个智能指针引用。 这类智能指针要求被引用的对象具有计数的功能,数值的大小就表示它目前被多少个智能指针引用。当一个对象的引用计数值等于0的时候,就表示它要被释放了。 这类智能指针适...

Boost 程序库完全开发指南:函数并发

Boost 程序库完全开发指南:函数并发

bingliaolong C++ 4年前 7 0

函数与回调 ref 包装对象的引用,在传递参数时消除对象拷贝的代价,或者将不可拷贝的对象变为可以拷贝。 reference_wrapper boost::cref boost::ref unwrap_ref bind 适配任意的可调用对象,如函数指针、函数引用、成员函数指针、函数...

Windows 核心编程 _ 内核对象:同步异步设备IO

Windows 核心编程 _ 内核对象:同步异步设备IO

bingliaolong Windows 4年前 6 0

概述 在Windows应用程序中,我们可以给每个线程指定一个处理器,这样在多个处理器的机器上就可以同时执行多个操作,从而提高吞吐量。 但是,当一个线程发出一个同步I/O请求的时候,它就会被临时挂起,知道设备完成I/O请求为止。此类挂起会影响性能,因为线程卡在那里不能做别的事情。 ...

Boost 程序库完全开发指南:工具与字符串

Boost 程序库完全开发指南:工具与字符串

bingliaolong C++ 4年前 3 0

noncopyable 实现一个禁止拷贝的类。 实现 使用 ignore_unused 让暂时用不到又必须保留的变量在编译时不报警告。 实现 用法 optional 常量 函数 optional:构造未初始化的对象。 optional(v):构造初始化的对象。 optional(...

51CTO:C++语言高级课程三

51CTO:C++语言高级课程三

bingliaolong C++ 4年前 8 0

进程内存空间布局 当运行一个可执行文件时,操作系统就会把这个可执行文件加载到内存中,此时进程就会有一个虚拟的地址空间(内存空间)。 BSS存放未初始化或者初始化为0的全局变量。 Linux下,可以通过nm列出可执行文件中的全局变量的地址。 全局变量以及全局的函数在编译时就已经分配...

51CTO:C++语言高级课程二

51CTO:C++语言高级课程二 6

bingliaolong C++ 4年前 9 0

程序执行所用的时间 关于优化的一点 标准 C++标准允许一种(编译器)实现省略创建一个只是为了初始化另一个同类型对象的临时对象。指定这个参数(-fno-elide-constructors)将关闭这种优化,强制G++在所有情况下调用拷贝构造函数。 表现 当编译器遇到需要用一个类对...

扫一扫二维码分享