自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (6)
  • 收藏
  • 关注

原创 【操作系统那些事儿】肆 死锁

这是【自动驾驶事务所】第十一篇原创什么是操作系统中的死锁?怎么避免死锁问题?这一讲我们来聊聊操作系统中死锁的那些事儿。【操作系统那些事儿】系列文章【操作系统那些事儿】壹 操作系统介绍【操作系统那些事儿】贰 进程与线程(一)【操作系统那些事儿】贰 进程与线程(二)【操作系统那些事儿】贰 进程间通信(三)【操作系统那些事儿】叁 存储管理学习目标1、了解什么是死锁?2、了解处理死锁的策略?3、了解怎么避免死锁?4、了解怎么预防死锁?在计算机系统中有很多独占性的资源,在任一时刻它们只能被.

2022-05-06 10:44:18 257

原创 【操作系统那些事儿】叁 存储管理

这是【自动驾驶事务所】的第十篇原创什么内存?计算机中的内存是如何管理的吗?内存(RAM)是计算机中一种需要认真管理的重要资源。在这一讲中,我们就来聊聊操作系统是怎么对内存创建抽象模型以及怎样管理内存的那些事儿。【操作系统那些事儿】系列文章【操作系统那些事儿】壹 操作系统介绍【操作系统那些事儿】贰 进程与线程(一)【操作系统那些事儿】贰 进程与线程(二)【操作系统那些事儿】贰 进程间通信(三)学习目标1、了解什么是内存?2、了解什么是存储器抽象?3、了解什么是虚拟内存?4、了解什么.

2022-05-05 11:02:09 338

原创 【操作系统那些事儿】贰 进程间通信(三)

进程间通信方式有哪些?这些通信方式之间的优缺点?这一讲我们来聊聊操作系统中进程间通信那些事儿。

2022-05-04 14:03:50 632

原创 CAN入门书 学习CAN基础知识最好的资料

CAN总线学习- CAN基础知识关注微信公众号[极简编程圈],免费获得CAN入门书最好的书籍学习CAN

2021-07-06 18:58:06 1524 1

原创 计算机操作系统面试总结(二)

1.进程的常见状态?以及各种状态之间的转换条件?就绪:进程已处于准备好运行的状态,即进程已分配到除CPU外的所有必要资源后,只要再获得CPU,便可立即执行。执行:进程已经获得CPU,程序正在执行状态。阻塞:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态。2.进程同步进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有...

2020-03-19 15:38:04 762

原创 计算机操作系统面试总结

1 什么是操作系统操作系统是管理和控制计算机系统中各种硬件和软件资源,合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。2 操作系统的作用存储管理:提高利用率,方便用户使用,同时提供足够的存储空间,方便进程并发运行,例如存储分配与回收,存储保护(防止进程间互相干扰),地址映射(进程逻辑地址到内存物理地址的映射),存储扩充处理机管理:说到底其实就是对进程的管理,例如进程调度(为进...

2020-03-19 15:37:18 1214

原创 计算机组成原理面试总结

第1章:计算机系统概论1、计算机系统由哪两部分组成?计算机系统性能取决于什么?计算机系统是由“硬件”和“软件”组成。衡量一台计算机性能的优劣是根据多项技术指标综合确定的,既包括硬件的各种性能指标,又包括软件的各种功能。1)计算机系统由硬件和软件两部分组成。2)计算机系统性能由硬件和软件共同决定。2、计算机系统5层层次结构从下到上由哪五层组成?哪些是物理机,哪些是虚拟机?1)微程序机器...

2020-03-19 15:36:23 4821

原创 计算机网络面试总结

1、Http和Https的区别  Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者之间存在如下不同:端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443;资源消耗:和H...

2020-03-19 15:35:36 1668

翻译 MySQL实战45讲 -02 | 日志系统:一条SQL更新语句是如何执行的?

02 | 日志系统:一条SQL更新语句是如何执行的?2018-11-16 林晓斌前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你...

2020-03-17 12:20:30 208

翻译 MySQL实战45讲 - 01 | 基础架构:一条SQL查询语句是如何执行的?

2020-03-17 12:05:22 148

原创 C++ STL常用算法总结

添加链接描述

2020-01-14 16:58:35 182

原创 git的详细使用教程

https://segmentfault.com/a/1190000021477922

2020-01-14 14:00:18 179

原创 理解C++中的左值和右值

理解C++中的左值和右值Attention:this blog is a translation of https://www.internalpointers.com/post/understanding-meaning-lvalues-and-rvalues-c ,which is posted by @internalpoiners.一、前言一直以来,我都对C++中左值(lvalue)...

2019-07-30 12:48:56 462

转载 [LeetCode63] Valid Number 验证数字

Validate if a given string can be interpreted as a decimal number.Some examples:“0” => true" 0.1 " => true“abc” => false“1 a” => false“2e10” => true" -90e3 " => true" 1e" =...

2019-07-19 14:13:08 183

原创 LeetCode] 189. Rotate Array 旋转数组

Given an array, rotate the array to the right by k steps, where k is non-negative.Example 1:Input: [1,2,3,4,5,6,7] and k = 3Output: [5,6,7,1,2,3,4]Explanation:rotate 1 steps to the right: [7,1,2,...

2019-07-17 14:41:49 191

原创 C++函数模板详解

模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。模板是一种对类型进行参数化的工具;通常有两种形式:函数模板...

2019-07-17 13:21:08 679

原创 [LeetCode 19] Remove Nth Node From End of List 移除链表倒数第N个节点

Given a linked list, remove the nth node from the end of list and return its head.For example,Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, th...

2019-07-11 15:01:50 132

原创 [LeetCode] Add Two Numbers 两个数字相加

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i...

2019-07-11 13:47:22 114

原创 [LeetCode] 1. Two Sum 两数之和

Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same e...

2019-07-11 13:46:21 90

原创 1.1 Unique Characters of a String 字符串中不同的字符

1.1 Implement an algorithm to determine if a string has all unique characters. What if you cannot use additional data structure?这道题让我们判断一个字符串中是否有重复的字符,要求不用特殊的数据结构,这里应该是指哈希表之类的不让用。像普通的整型数组应该还是能用的,这道题的...

2019-07-09 16:28:58 248

原创 数据结构介绍

当你决定看这篇文章,就意味着系统学习数据结构的开始。本节,我们先来讲什么是数据结构。什么是数据结构数据结构,直白地理解,就是研究数据的存储方式。我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的加和值,无缘由的数据存储行为是对存储空间的不负责任。因此,数据在计算机存储空间的存放,决不是胡乱的,这就要求我们选择一...

2019-02-01 13:44:45 153

原创 虚拟内存到底是什么?为什么我们在C语言中看到的地址是假的?

在C语言中,指针变量的值就是一个内存地址,&运算符的作用也是取变量的内存地址,请看下面的代码:#include <stdio.h>#include <stdlib.h>int a = 1, b = 255;int main(){int *pa = &a;printf(“pa = %#X, &b = %#X\n”, pa, &b);...

2019-02-01 09:31:04 1255

原创 C++ 指向数组的指针

C++ 指向数组的指针如果您对 C++ 指针的概念有所了解,那么就可以开始本章的学习。数组名是一个指向数组中第一个元素的常量指针。因此,在下面的声明中:double balance[50];balance 是一个指向 &balance[0] 的指针,即数组 balance 的第一个元素的地址。因此,下面的程序片段把 p 赋值为 balance 的第一个元素的地址:double *p...

2019-01-18 16:45:04 2964

原创 数组指针和指针数组的区别

数组指针和指针数组的区别数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; ...

2019-01-18 16:42:21 128

翻译 Tensorflow入门教程

比官方更简洁的Tensorflow入门教程声明:参考自Python TensorFlow Tutorial – Build a Neural Network,本文简化了文字部分文中有很多到官方文档的链接,毕竟有些官方文档是中文的,而且写的很好。Tensorflow入门资源:付费tensorflow教程Tensorflow graphsTensorflow是基于graph的并行计算模型...

2019-01-18 16:41:19 169

转载 C语言中,为什么字符串可以赋值给字符指针变量

一、C语言中,为什么字符串可以赋值给字符指针变量char *p,a=‘5’;p=&a; //显然是正确的,p=“abcd”; //但为什么也可以这样赋值??问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点!答:双引号做了3件事:1.申请了空间(在常量区),存放了字符串2. 在字符串尾加上了...

2019-01-15 22:10:39 987

原创 C语言中循环实现的方式

开篇几乎每种程序设计语言的语法中都会有语句的循环,跳转。像最为熟知的C语言便有 for 、 while 、 do—while 等等。这些循环一般都很容易理解和使用,对于程序中逻辑的实现也很有帮助。只是很多人不曾知道,这些循环、跳转在计算机内部、在底层是如何实现的,于是在出现问题时还是没有好的解决办法,或者是虽然写出来程序,对于内部的逻辑,却还是隔了一层迷雾。比如有人对这样一个问题:for(...

2019-01-15 22:09:23 19640

原创 GDB 详细介绍

5.1.1设置断点使用break命令(缩写 b)设置断点。调试器便利变量’$ bpnum’记录您最近设置的断点数; 有关便利变量的讨论,请参阅便利变量。break location在给定位置设置断点,可以指定函数名称,行号或指令的地址。(有关指定位置的所有可能方法的列表,请参阅“ 指定位置”。)断点将在执行指定位置中的任何代码之前停止程序。当使用允许重载符号的源语言(例如C ++)时,函数...

2019-01-14 12:03:28 5368

转载 GDB调试

Unix 始于上个世纪60年代,在70年代得到了迅猛的发展,这时候的李纳斯还躺在祖父公寓的摇篮里睡大觉,如果不是后来 Unix 王国自乱阵脚,出现阵营分裂和法律纠纷,可能 Linux 系统根本都不会出现。真实的情况是,Unix 浪费了大把的时间和机会,似乎就是为了等待这个大鼻子、头发纷乱的芬兰小子长大,然后一决高下。李纳斯赢得了自己的时间,他一刻不停的磨练自己的技艺,在清晨的微光中练习算法...

2019-01-14 11:40:33 169

转载 Linux复习笔记-linux简介

Linux复习笔记-linux简介【Open source】 公布源码,用户具有修改权、任意再散布、允许修改、不限制使用权、不限制某些领域的应用、不具有排他条款【GPL是Open Source的一种形式】【自由软件】:就是Free Software,用户拥有自由的控制、复制、修改、再发行该软件的权利,通常是Open source【开源软件】:软件发布时发布源码,仅此而已【自由软件...

2019-01-11 08:25:23 156

转载 Auvidea J20板入门指南

Auvidea J20板入门指南内容1 简介2 配置和设置2.1 TX12.2 TX22.3 J20上的Jetson TX1 I2C映射3 Jetson TX1 CSI输入映射在J20上介绍此Wiki页面提供了有关开始使用Jetson TX1的Auvidea J20板的有用说明。J20提供对Jetson TX1上可用的6个双通道CSI端口的访问,这个Auvidea板连接到Jets...

2019-01-10 19:52:43 634 1

原创 TX2上的CSI摄像头(简单方法)

TX2上的CSI摄像头(简易方式)我喜欢Nvidia的新嵌入式计算机。在Nvidia的杰特森嵌入式计算产品线,包括TK1,TX1,TX2和,是一系列小型电脑制造流畅运行计算机视觉,神经网络和人工智能软件,而无需使用吨的能量。更好的是,他们的开发人员套件可以用作优秀的单板计算机,所以如果你曾经希望加强Raspberry Pi,这就是你想要的。我个人使用Jetson TX2,这是目前功能最强大的模块...

2019-01-10 19:45:19 18417

转载 Makefile -Linux编译必备知识

教你写MakefileMakefile值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解...

2019-01-10 19:35:48 462

原创 Linux makefile (跟我一起写 Makefile)

Linux makefile 教程 非常详细,且易懂跟我一起写 Makefile陈皓 (优快云)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解...

2019-01-10 19:30:12 342 1

原创 CMake 教程

前面是中文,是我根据项目过程应用中用到的方面的知识。后面附有英文版的,如果有不明白的地方,可以直接看英文版的。谢谢CMake下面是一个循序渐进的教程,介绍CMAKE帮助解决的常见构建系统用例。在掌握CMAKE时,已经介绍了许多这些主题作为单独的问题,但是看看它们如何在示例项目中一起工作是非常有帮助的。本教程可以在cmake源代码树的tests/tutorial目录中找到。每个步骤都有自己的子...

2019-01-10 19:26:22 1257

转载 /usr/bin/ld: cannot find -lxxx 的解决办法

在软件编译过程中,经常会碰到类似这样的编译错误:/usr/bin/ld: cannot find -lhdf5这表示找不到库文件 libhdf5.so,若是其它库文件,则是 cannot find -lxxx 了,其中 xxx 是库文件的名字。解决方法有:安装此库文件和相关软件一般库文件属于某个软件,google搜索该软件并安装,或者使用 yum 安装。将库文件所在路径添加到g...

2019-01-10 19:16:03 2695

转载 十大经典排序算法

十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念...

2019-01-10 19:04:35 130

原创 使用CMake导入第三方库

使用CMakeLists.txt 中间需要导入第三方的库当我们需要生成自己的库的时候,下面介绍如何导入第三方库的具体步骤。CMake的配置信息写在了CMakeList.txt文件中。在CMakeList.txt文件里,我们首先定义两个变量INC_DIR和LINK_DIR,用来表示头文件路径和库的路径。这里以我放在Downloads文件下的wfdb库为例,代码如下:set(INC_DIR /Us...

2019-01-10 19:00:18 31410 7

原创 算法对程序员意味着什么?

1.简介程序员为什么要学算法?程序员对算法通常怀有复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的分歧点。很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测。但是这些其实都不是具体的算法,而是一系列算法的集合。对初学者来说,为避免片面或抽象地理解算法,可根据几个问题评估自己是否适合学习算法:(1).学习算法最重要的是什么?在学习算法的过程中...

2019-01-09 19:30:48 4159

转载 Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)

Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)安装Nvidia驱动出现的问题问题主要是三种,(1)循环登录,也就是登录之后在退出来到登录界面; (2)界面变得很大,看着心慌,哈哈;(3)登录进去了,显示正常了,结果只有桌面背景和鼠标。安装Ubuntu环境下Nvidia驱动几种方式总的说,安装显卡驱动的方式有如下几种:直接去nvid...

2019-01-09 19:13:11 1341 2

03.事务隔离:为什么你改了我还看不见?.pdf

我希望这个专栏能够帮助这样的一些开发者:他们正在使用MySQL,知道如何写出逻辑 正确的SQL语句来实现业务目标,却不确定这个语句是不是最优的;他们听说了一些使用数据库 的最佳实践,但是更想了解为什么这么做;他们使用的数据库偶尔会出问题,亟需了解如何更快 速、更准确地定位问题,甚至自己解决问题……

2020-03-17

02.日志系统:一条SQL更新语句是如何执行的?.pdf

我希望这个专栏能够帮助这样的一些开发者:他们正在使用MySQL,知道如何写出逻辑 正确的SQL语句来实现业务目标,却不确定这个语句是不是最优的;他们听说了一些使用数据库 的最佳实践,但是更想了解为什么这么做;他们使用的数据库偶尔会出问题,亟需了解如何更快 速、更准确地定位问题,甚至自己解决问题……

2020-03-17

01.基础架构:一条SQL查询语句是如何执行的?.pdf

本资源为MySQL的实战45讲,通过本资源可以了解关于MySQL数据库使用过程中的难点。通过深入浅出的方式不断的深入到数据库使用的过程中。可以极大的提高我们平时使用的数据库时遇到的问题。

2020-03-17

嗨翻C语言介绍

这是一本详细介绍C语言的书籍,它的优点是能够通过读者的角度来详细说明C语言的来源和发明原因,而且内容采用问答式模式,诙谐幽默,轻松移动

2019-01-14

C 经典编程100题

这是学习C语言必备的习题,只有将知识和习题结合才能更好的掌握C语言的知识

2019-01-11

空空如也

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

TA关注的人

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