• 等级
  • 2419618 访问
  • 198 原创
  • 44 转发
  • 733 排名
  • 649 评论
  • 510 获赞

百度 Apollo Cyber RT简介、基本概念以及与 ROS 对照

一,背景ROS应用于自动驾驶领域的不足:调度的不确定性:各节点以独立进程运行,节点运行顺序无法确定,因而业务逻辑的调度顺序无法保证;运行效率:ROS为分布式系统,存在通信开销二,CyberRT框架从下到上依次为:基础库:高性能,无锁队列;通信层:Publish/Subscribe机制,Service/Client机制,服务自发现,自适应的通信机制(共享内存、Socke...

2019-03-30 16:04:52

微软C++并行库 pplx 的基本用法

前言并行计算库充分利用多核的优势,通过并行运算提高程序效率,业界有两个知名的c++并行库,一个是intel开发的TBB,一个是微软开发的PPL。TBB(Intel®ThreadingBuildingBlocks)TBB是intel用标准c++写的一个开源的并行计算库。它的目的是提升数据并行计算的能力,可以在其官网下载最新的库和文档。TBB主要功能:并行算法、任务调度、并行容器、同步原...

2019-01-31 13:34:58

区块链知识之 VRF: 可验证随机函数

区块链知识之VRF:可验证随机函数介绍可验证随机函数(VerifiableRandomFunction,简写VRF)是一种将输入映射为可验证的伪随机输出的加密方案。该方案是由Micali(Algorand的创建者)、Rabin以及Vadhan于1999年提出的。SharonGoldberg,MoniNaor,DimitrisPapadopoulos,LeonidRey...

2018-12-04 16:20:48

ADA共识算法Ouroboros简介

ADA项目简介名称ADA,中文称为艾达币,是卡尔达诺(Cardano)的代币,Cardano项目发起于2015年,名字的由来是来自16世纪的意大利数学家GerolamoCardano。而ADA则是以19世纪英国贵族Adalevea的名字来命名,她是拜伦的女儿,被称为人类史上的第一位程式员。团队卡尔达诺的整个团队由卡尔达诺基金会,InputOutputHK(简称...

2018-07-10 15:47:40

Go之interface

Go之interface浅显地了解了一下Go,发现Go语法的设计非常简洁,易于理解。正应了Go语言之父RobPike说的那句“Lessismore”——大道至简。下面就具体的语法特性说说我自己的体会。interface概览与通常以类型层次与继承为根基的面向对象设计(OOP)语言(如C++、Java)不同,Go的核心思想就是组合(compos...

2018-03-09 17:33:32

2017年阅读统计

总计阅读37本评价统计:五星图书15本,占比40.5%四星图书13本,占比35.1%三星图书8本,占比21.6%两星图书1本,占比2.7%标签统计:软件开发12本历史7本政治5本文学3本教育3本法学2本经济1本

2018-01-16 09:22:50

记录一次重构

记录一次重构记录一次简单的重构是为了体现出代码重构的重要性和紧迫性。如果代码不能持续进化,那么随着新的代码不断增加,代码越来越难以维护和扩展,于是老代码成了难以追踪、难以理解、一动就崩溃的badsmell代码。此外,不通过持续打磨代码,程序员自身水平以及团队水平也难以得到提高。通过重构与review机制能够让编程经验与知识在团队中得以传递。更详细的关于为什么要重构代码以及怎样重构代码,推荐阅读经典《重构》

2017-09-05 14:35:21

软件开发书籍推荐

软件开发书籍推荐学而不码则罔,码而不学则殆。针对软件开发(语言C++、Java、Python,平台:Android),推荐一份能修炼内功提高编程素养的书单。难度等级1~5:1级最容易,5级最难重点推荐:《代码大全2》+《重构》+《大话设计模式》+《编码》+《深入Java虚拟机(原书第2版)》计算机系统

2017-08-30 09:01:05

Python Matplot中文显示完美解决方案

原因与现象Matplot是一个功能强大的Python图表绘制库,很遗憾目前版本自带的字体库中并不支持中文字体。所以如果在绘制内容中需要显示中文,那么就会显示为方格字符。解决办法有一个较为完美的解决方案,通过扫描Matplot自带字体库以及系统字体库,寻找能够支持的中文字体,如果能够找到的话,就设置第一个为Matplot的字体熟悉。代码如下:defget_matplot_zh_font():

2017-05-05 16:09:16

Android4.4之后休眠状态下Alarm不准时的问题

Android4.4及之后休眠状态下Alarm不准时的问题为了减轻功耗,延长电池使用时间,Android4.4及之后的版本采用非精准闹钟机制,以及休眠状态下的wakeup类型的alarm不会实时唤醒设备,而会等到机器被物理唤醒时才触发alarm。Android6.0提供了新的api:setExactAndAllowWhileIdle()部分解决这个问题,但依然不能在休眠状态下精准唤醒。关于ala

2017-04-17 15:21:43

基于C++11模板元编程实现Scheme中的list及相关函数式编程接口

本文将介绍如何使用C++11模板元编程实现Scheme中的list及相关函数式编程接口,如list,cons,car,cdr,length,is_empty,reverse,append,map,transform,enumerate,lambda等。

2017-03-15 16:39:57

2016年阅读统计

2016年阅读统计2016年又即将过去了,这一年阅读时间相比往年少了许多,总计只阅读了42本书,评价以四星、五星图书为主,主题以历史、编程、育儿为主。其中有几本是重读,如《万历十五年》、《论美国的民主》、《士与中国文化》、《COM本质论》等。我写了一个python脚本来自动生成这个阅读统计小结,源码在这里,你可以对代码稍作修改并利用在线python运行环境生成你自己的年度阅读小结,欢迎试

2016-12-24 17:36:35

模板链接与前置声明引发的血案

有一个类模板,它会根据模板类型参数`T`的实际类型,调用不同的实例化泛型函数子去处理实际事情。在程序运行时,发现在不同的模块中用相同的类型参数来调用该类模板,得到的结果不一致,也就是说在传入同样的实际模板类型参数实例化了不同的泛型函数子。因此,可以推测在不同的模块中对同样的实际模板类型参数作了不一样的处理,导致生成了不一样的实例化。

2016-03-08 13:24:12

Android5 Zygote 与 SystemServer 启动流程分析

Android5.0.1的启动流程与之前的版本相比变化并不大,OK,变化虽然还是有:SystemServer启动过程的init1(),init2()没有了,但主干流程依然不变:Linux内核加载完毕之后,首先启动init进程,然后解析init.rc,并根据其内容由init进程装载Android文件系统、创建系统目录、初始化属性系统、启动一些守护进程,其中最重要的守护进程就是Zygote进程

2016-02-25 10:42:40

2015私人阅读十五佳

2015私人阅读十五佳非暴力沟通沟通的艺术看入人里看出人外父母效能训练手册对伪心理学说不精益创业新创企业的成长思维枪炮病菌与钢铁人类简史从动物到上帝现代世界史狂热分子群众运动圣经独裁者手册社会主义经济与社会学的分析编码隐匿在计算机软硬件背后的语言儒家哲学水浒传注评本蒋介石与现代中国

2015-12-30 09:25:26

从贝叶斯定理说开去

贝叶斯定理的思想出现在18世纪,但真正大规模派上用途还得等到计算机的出现。因为这个定理需要大规模的数据计算推理才能凸显效果,它在很多计算机应用领域中都大有作为,如自然语言处理,机器学习,推荐系统,图像识别,博弈论等等。本文先介绍贝叶斯定义,然后对定义进行解释,再通过一些列子分析,力图让贝叶斯定理通俗易懂。

2014-10-22 07:51:02

用Python编写博客导出工具

本文详细介绍如果通过Python编写一个博客导出工具,我希望没有学习过编程的人也能够学会一些简单的Python语法来修改这个脚本工具,以满足他们将其他类型的博客导出为文本格式。这也是我第一次学习和使用Python,所以相信我,你一定也可以将自己的博客导出为想要的文本格式。

2014-10-18 22:12:55

Android多线程分析之五:使用AsyncTask异步下载图像

在本系列文章的第一篇《Android多线程分析之一:使用Thread异步下载图像》中,曾演示了如何使用Thread来完成异步任务。Android为了简化在UI线程中完成异步任务(毕竟UI线程是app最重要的线程),实现了一个名为AysncTask的模板类。使用AysncTask能够在异步任务进行的同时,将任务进度状态反馈给UI线程(如让UI线程更新进度条)。正是由于它与UI线程紧密相关,使用的时候要就有一些限制,AysncTask必须在UI线程中创建,并在UI

2014-07-19 15:10:07

Android多线程分析之四:MessageQueue的实现

在前面两篇文章《Android多线程分析之二:Thread的实现》,《Android多线程分析之三:Handler,Looper的实现》中分别介绍了Thread的创建,运行,销毁的过程以及Thread与Handler,Looper之间的关联:Thread在其run()方法中创建和运行消息处理循环Looper,而Looper::loop()方法不断地从MessageQueue中获取消息,并由Handler分发处理该消息。接下来就来介绍MessageQueue的运作机制,Mes

2014-07-14 17:31:10

Android多线程分析之三:Handler,Looper的实现

在前文《Android多线程分析之二:Thread的实现》中已经详细分析了AndroidThread是如何创建,运行以及销毁的,其重点是对相应native方法进行分析,今天我将聚焦于AndroidFramework层多线程相关的类:Handler,Looper,MessageQueue,Message以及它们与Thread之间的关系。可以用一个不太妥当的比喻来形容它们之间的关联:如果把Thread比作生产车间,那么Looper就是放在这车间里的生产线,这条生产线源源不断地从

2014-07-12 10:04:07

博客专家

飘飘白云

用简单的方式把事情做到极致。
关注
奖章
  • 专栏达人