自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wusuobupo的博客

努力造轮子

  • 博客(17)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Boost.Asio - Streams, Short Reads and Short Writes

Boost.Asio中的很多I/O对象都是面向流的,这意味着:没有消息边界。将要被传输的数据是一个连续的字节序列。读写操作传输的字节可能要少于请求的字节。这被称为短读或者短写。Objects that provide stream-oriented I/O model one or more of the following type requirements:SyncReadStream, 用一个叫read_some()的成员函数来执行同步读操作。AsyncReadStream, 用一个叫

2020-09-22 21:38:00 263

原创 Boost.Asio - Buffers

从根本上讲,I/O涉及在连续内存区域(叫做缓冲区)之间传递数据。这些缓冲区可以简单地被表示为一个由指针和字节数组成的元组。然而,为了允许开发高效率的网络应用,Boost.Asio为scatter-gather操作提供支持。这些操作涉及一个或多个缓冲区:一个scatter-read接收数据到多个缓冲区。一个gather-write传输多个缓冲区。因此我们需要一个抽象来表达一组缓冲区。Boost.Asio使用的方法是定义一个类型(实际上是两个类型)来表示一个缓冲区。这些缓冲区可以被存储在一个容器中,容

2020-09-22 16:30:47 390

原创 Boost.Asio - Strands: Use Threads Without Explicit Locking

一个strand被定义为一个事件处理器的严格顺序调用(即没有并发调用)。strands的使用允许在多线程程序中的代码无需明显的锁(例如 使用mutexes)。Stands可以是隐式或显式的,如以下替代方法所示:由于io_context保证处理器只会被在run()函数中调用,所以 只从一个线程调用io_context::run()意味着所有事件处理器都执行在一个隐式strand中。当存在一条与连接相关的异步操作的单链时(例如,半双工协议实现像HTTP)处理器不可能并发执行。这是一条隐式的stand。

2020-09-22 15:42:20 225

原创 Boost.Asio - Threads and Boost.Asio

Thread Safety一般来说,不同对象的并发使用是安全的,但单一对象的并发使用是不安全的。然而,像io_context这样的类型可以为并发使用单一对象提供强有力的保证。Thread Pools多个线程可以通过调用io_context::run()来设置一个线程池,可以在线程池中调用完成处理程序。这个方法也可以与post方法一起使用,作为跨线程池执行任意计算任务的一种方法。.注意所有被加入到io_context的线程池的线程都是等价的,io_context可以在所有线程之间以任意方式分配任务。

2020-09-21 11:10:37 175

原创 Boost.Asio - The Proactor Design Pattern: Concurrency Without Threads

Boost.Asio库为同步操作和异步操作提供并行支持。异步操作支持基于Proactor设计模式。与同步操作或者Reactor方法相比较,这种方法的优点和缺点概述如下:Proactor and Boost.Asio让我们看看Proactor设计模式是如何在Boost.Asio库中实现的,不用参考平台相关细节。Proactor design pattern (adapted from [POSA2])— Asynchronous Operation定义一个异步执行的操作,例如在socket上的异步

2020-09-09 07:36:13 223

原创 Boost.asio -整体剖析

Boost.Asio既能用于同步IO对象,也能用于异步IO对象,例如套接字。下面的图对使用此库很有用。作为一个介绍性的例子,让我们思考一下,当执行一个socket连接时会发生什么。我们将会从分析同步操作开始。你的程序应该有至少一个I/O执行上下文,比如一个boost::asio::io_context对象,一个boost::asio::thread_pool对象,或者boost::asio::system_context对象。这个I/O执行上下文代表你的程序连接到操作系统的I/O服务。...

2020-09-06 22:05:57 472

翻译 可重入和线程安全

谈谈编程中的基础概念:函数可重入和线程安全!文章原文来自于Qt官方文档:http://doc.qt.io/qt-5/threads-reentrancy.html “Qt原文”综观整个文档,术语可重入和线程安全总是被用来标记类和函数,表明他们如何被用在多线程程序中。一个线程安全的函数能被多个线程同时调用,甚至在这些调用使用共享数据时,因为所有对共享数据的引用是串行进行的。 一个可...

2018-05-27 22:07:40 227

原创 Presentation官方文档翻译

类概述演示功能基类。一个演示是一个特殊类型的对话框,这个东西的目的是在第二个显示上演示内容。一个演示在创建时被关联到目标显示,并且根据显示的尺寸配置他的上下文和资源配置。 显而易见地,一个演示的上下文是不同于它包含的activity的上下文的。填充一个演示的布局和用演示 自己的上下文加载其他资源,确认为被加载的目标显示是正确的尺寸和密度,这一点是非常重要的。 一个演示是会被

2017-01-03 14:42:09 618

原创 SurfaceView官方文档翻译

SurfaceView  类概述提供被嵌入到视图层次结构中的专用绘画表面。你能控制这个表面的格式,并且,如果你喜欢,它的尺寸也能控制。SurfaceView负责将表面放置在正确的屏幕位置上。 那个表面是Z序的,所以它在拥有这个SurfaceView的窗口的背后;SurfaceView在它所在的窗口上打了一个洞,用来允许它的表面被显示出来。视图层次结构将会负责正确的混合Sur

2017-01-03 10:06:50 498

原创 JNI注册函数方法

注册JNI函数方法1、静态方法先将java源代码编译成 .class 文件使用java的javah命令生成结果头文件:javah –o output packagename.classname。目标output.h文件里有函数声明和实现,实现相应函数即可。output.h的文件名一般都是将包名的 . 换成_  。比如:android.com.media.Target.java 

2016-11-29 13:38:28 375

原创 《Android音频焦点机制深入理解》

Handling audio focusEven though only one activity can run at any given time, Android is amulti-tasking environment. This poses a particular challenge to applications that use audio, because there is

2016-11-04 14:36:25 3980 1

原创 Xml文件里Activity标签属性

android:configChanges      列出Activity将会自己处理的配置改变。当一个配置改变发生在运行时,Activity默认会被停止并且重启,但是用这个属性声明一个配置将会阻止Activity被重启。代替的,Activity保持继续运行并且它的onConfigurationChanged()方法会被调用。      注意:使用这个属性应该被避免,并且只用作最后一招。请

2016-10-16 21:52:12 2617

原创 Activity四种启动模式

android:launchMode       启动模式An instruction onhow the activity should be launched. There are four modes that work inconjunction with activity flags (FLAG_ACTIVITY_* constants) inIntent objects

2016-09-28 19:23:56 282

原创 cscope官方文档

翻译自man文档名字       Cscope-  交互检查一个C程序。 概述       cscope[-bCcdehkLlqRTUuVvX] [-Fsymfile] [-freffile] [-Iincdir] [-inamefile][-0123456789pattern] [-pn] [-sdir] [files]  描述       Cscope是一个

2016-09-23 17:39:57 704

原创 Android - 《Keeping Your App Responsive》

翻译自Android 官方文档。保持你的App有响应在这个世界上,写出能跑赢所有性能测试的代码是可能,但是在重大的周期里,仍然让人感觉缓慢、卡顿或者卡住,或者花太多时间来处理输入。这种能发生在你的App的响应能力的最坏的事情是一个“ANR”Dialog。在Android系统里,系统守卫依靠在一个周期里确认App没有响应能力,从而显示一个对话框来告诉你,你的App已经停止响应,就像图1显

2016-09-21 22:21:35 235

原创 Android - 《Tasks and Back Stack》

翻译自官方文档里关于Activity的描述。一个Activity是一个应用组件,提供一块屏幕,用户能用这个屏幕做一些交互。比如打电话、照相、发邮件、看地图。每个Activity都被授予一个窗口,这个窗口用来描画用户界面。这个窗口典型地填满屏幕,但是也有可能比屏幕小并且漂浮在其他窗口的顶部。一个应用通常由多个松散结合的Activity构成。有代表性的,一个Activity会被设置为App的“

2016-09-18 20:28:36 278

原创 Android-《Managing Audio Playback》

本文是从Android官网文档上的《Managing Audio Playback》章节直接翻译下来的,因为本人英语实在是太差,故而只能配合电子词典进行翻译。望各位见谅。《管理音频回放》如果你的应用要播放音频,那么保证你的用户能用一种可预计的方式控制音频就是非常重要的了。为了确认提供一个好的用户体验,保证你的应用管理音频焦点从而使多个应用不在同时播放也是非常重要的了。在后边的课程里,你

2016-09-16 11:03:09 425

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除