自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kelvin的博客

时间会证明坚持的力量!

  • 博客(52)
  • 收藏
  • 关注

原创 MVCC 多版本并发控制

InnoDB 存储引擎中版本链的作用及原理。

2022-07-18 14:27:47 333 1

原创 Go 自定义排序方法

Go 自定义排序方法前言我们经常需要对数组进行排序,Go内置的sort包提供了一些排序函数来帮助我们实现排序。对于[]int、[]float、[]string这些基础类型数组,使用sort包提供的下面几个函数进行排序:sort.Intssort.Float64ssort.Strings看几个例子:score := []int{5, 4, 3, 2, 1}sort.Ints(score)fmt.Println(score) // 输出[1 2 3 4 5]score := []fl

2021-12-02 12:56:34 1044

原创 Java8中的常见函数式接口

Java8 中的常用函数式接口内容来自于《Java8实战》函数式接口函数描述符原始类型特化PredicateT->booleanIntPredicate, LongPredicate, DoublePredicateConsumerT->voidIntConsumer, LongConsumer, DoubleConsumerFunctio...

2020-03-05 23:33:26 482

原创 两种姿势教你在CentOS7上正确安装Redis

前言Redis是开源的非关系型数据库,可用于数据存储、缓存和消息队列,并且其支持字符串、哈希、列表、集合和有序集合等类型的存储。本文我们介绍在CentOS7.X系统安装redis的几种方法。安装一、yum命令安装如果你学过CentOS,那对yum命令应该不陌生。Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的...

2019-12-25 18:05:40 726

原创 Python中while循环的基本用法

文 | 天罡君while和for都可以使程序重复执行某一段代码(又称作循环体),区别是for循环用于针对集合中的每一个元素都一个代码块,而while循环在表达式为True的情况下会不断地执行,直到指定条件不满足为止。今天我们一起来学习下while关键字的使用。1.while循环简介while在英语中的解释是:当…时候。在Python中的语法是:while 表达式: 循环体...

2019-09-11 10:25:41 69066 6

原创 Python如何获取用户输入?

文 | 天罡君本文首发于公众号「猿天罡」,转载请注明出处,谢谢!有时候,我们编写的程序需要从用户那儿“拿到”一些数据才能继续执行下去,比如,判断某人是否到了法定投票年龄,需要用户自己输入名字和年龄才行。Python要“拿到”用户输入的数据比起Java来可简单多了,只需要学会input()方法即可。下面我们一起来学习一下input()函数的基本用法,迈出编写交互式程序的第一步!1...

2019-08-20 22:40:26 30573 1

原创 LeetCode第20题:有效的括号

本文首发于公众号「猿天罡」,转载请注明出处,谢谢!本题源自LeetCode,题号20。1.题目描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:...

2019-08-13 17:25:23 312

原创 Python字典嵌套

文 | 猿天罡前言前两篇文章,我们学习了Python字典的基本用法和遍历字典的三种方式为了让小伙伴们不耗费多余的注意力,我们举的例子都尽可能的简单,不信你回去看看,字典键对应的值都是基本数据类型(字符串、数字等)。其实,字典里键对应的值可以很复杂。我们可以在字典中存储列表,在列表中存储字典,在字典中存储字典等等。Python中几乎所有的数据类型,都可以存进字典里。学习不是一日...

2019-08-10 17:02:59 15846 1

原创 遍历Python字典

前言一个Python字典短则包含一个键值对,长则可能数以百万计。所以我们不会遍历字典可不行。因为Python字典是由一系列键值对组成的,所以我们可以遍历字典的所有键值对、键或值。1.遍历字典中所有的键值对我们还是从一个学生字典开始:student = {'num': '123456', 'name': 'kelvin', 'age': 18}前面文章中我们知道怎么访问student字...

2019-08-08 20:28:50 40319 1

原创 Python爬虫遇到Request-Payload怎么办?

前言最近想用 Python 自动地爬取某个站点里的图片,没想到其请求数据是以request payload格式传输给后端进行处理的。博主还是第一次遇到这种情况,写下这篇文章记录一下解决过程。博主浏览器使用的是 Chrome,下文说的浏览器一律指的是 Chrome浏览器。POST提交数据常见的几种Content-Type在网络请求中常用的Content-Type有很多,但是在POST请...

2019-08-08 16:08:47 7162 5

原创 Python字典的基本使用

前言相比于列表,字典是更为灵活的一种数据结构。它能将相关信息关联起来,本文中我们一起来学习Python字典的基本用法,即如何添加、访问、修改和删除字典中的信息。1.最简单的字典在学习Python字典之前,我们一起来看一下字典到底是个什么玩意儿,这样有助于对其建立大体的印象,把抽象的概念具体化。举个例子,假如你正在帮助学校开发学生管理系统,需要保存单个学生的详细信息(学号、姓名、性别、年...

2019-08-06 23:03:31 2229

原创 LeetCode第9题:回文数

本题源自 LeetCode,题号9。1.题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读...

2019-08-02 19:14:44 321

原创 LeetCode第7题:整数反转

本文首发于公众号「猿天罡」,转载请注明出处个人网站:https://liuwynn.github.io本题源自 LeetCode ,题号7。1.题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境...

2019-07-31 16:44:25 294

原创 LeetCode第1题:两数之和

本文首发于公众号「猿天罡」个人网站:https://liuwynn.github.io题目来源于 LeetCode,第一题。1. 题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 1...

2019-07-31 01:07:30 190

原创 Python if 语句

前言程序有三大结构:顺序、循环和选择。貌似有数学家给出了证明,任何一件复杂的事都是由这三种结构组成的。拿我们的人生举例,每个人都要经历从出生到死亡的顺序结构,在短暂的生命里总是会重复(循环)做同一件事,上学、工作等等,同时我们也面临着许多选择,每一个选择或多或少决定着人生的走向。从这点来说的话,程序甚至可以模拟人生。言归正传,今天给大家介绍一下新的结构——选择结构。1. 简单示例首先...

2019-07-28 00:02:53 389

原创 配置Python环境变量

前言如果有人装完 python 安装程序后,在命令窗口输入 python 并回车后,看到一条错误消息,指出 python 是无法识别的命令,那么希望这篇文章能帮助到你。原因:安装时没有勾选 Add Python to PATH下面是解决方法↓↓↓解决方法勾选 Add Python to PATH的作用是什么?为什么在安装Python程序时要勾选Add Python to PATH?因...

2019-07-26 22:11:12 6270 1

原创 在Windows系统中搭建python编程环境

前言在学习之初应尽可能的将精力专注于Python语言本身,而不是关心用什么操作系统。有人会说,网上搜索结果都是说最好在Linux系统里学习Python。但为了学习一门语言而再去捣鼓Linux,有点舍本逐末的感觉。虽说工欲善其事必先利其器,但是等你Python有一定水平之后再考虑也不迟。因为大多数人使用的还是Windows系统,所以今天这篇文章便是在Windows系统中搭建Python编程环境的教...

2019-07-26 22:06:04 592

原创 Python元组

前言回顾前面的几篇文章,我给大家讲了 Python 中简单的数据类型、列表的操作等等,今天给大家介绍一个新的数据存储结构——元组。1. 元组的定义元组看起来和列表很像,但使用圆括号 () 而不是方括号 [] 来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表一样。举例说明,如果我们要存储一个矩形的长和宽,使用元组来存储的话,可以这样写:rectangle = (200, 50...

2019-07-26 15:51:11 265

原创 操作Python列表Ⅱ

相关阅读:Python列表简介操作Python列表1前言前面有几篇文章讲解了怎么创建和使用列表,以及在列表中数据量过大的时候如何循环操作列表。今天我们来学习一下,如何快速的创建数值列表以及如何对列表进行切片。1. 创建数值列表需要存储一组数字的原因有很多,例如,在数据可视化中,处理的几乎都是数字(温度、距离、人口等)组成的集合。列表非常适合用于存储数字集合,Python 也提供了...

2019-07-24 23:07:37 237

原创 Ubuntu 启动盘制作教程

前言最近几天翻出了以前的旧电脑,心痒难耐,决定捣鼓 Linux 系统。对比了 Linux 各个系统以后,决定安装 Ubuntu 桌面版体验一下。制作系统盘因为我是在 windows 系统中制作的系统盘,这里就只说明 windows 系统下制作 Ubuntu 系统盘的方法。1.1 下载官方镜像可以去官方网站下载,这里给个 传送门如果你要长期使用 Ubuntu 系统,建议安装 LTS 版本...

2019-07-12 16:54:08 14653 1

原创 Python使用虚拟环境

前言虚拟环境是 Python 解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局 Python 解释器。虚拟环境非常有用,可以在系统的 Python 解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建(更多)虚拟环境的源。使用虚拟环境虚拟环境使用第三方实用工具 virt...

2019-06-28 14:42:12 376

原创 Python避免缩进错误

前言上篇文章我们讲了怎么遍历列表,很多同学之前可能学过C/C++或者Java,对代码格式可能不太重视。需要注意的是,C/C++或Java是通过 { } 确定循环体,所以无论你写的代码格式怎么不好看,你只要是把代码写在大括号 { }里面,一般都没有问题。然而,我们的 Python 是没有 { } 的,所以对格式要求非常严格以确定代码块(如,循环体、函数体等),so,你写 Python 代码时可不...

2019-05-07 19:40:53 5852

原创 操作Python列表Ⅰ

前言在看了上一篇列表简介之后,你应该对列表有了初步的了解,知道了怎么创建和操作列表元素。不知道你有没有想过,上篇文章的操作列表元素是基于“我们已经知道列表元素内容和列表元素数量很少”的前提下,如果现在有个列表,我们不知道它有多少个元素,或者列表中含有一百万个以上的元素我们怎么对其进行操作?在本文中,你将学习如何遍历整个列表,遍历列表就是循环操作列表中的每个元素,这在Python中只需要几行代...

2019-05-07 16:52:20 345

原创 对Python列表常用的几个函数

前言上一篇文章简单地介绍了什么是 Python 列表和对其增删改操作,生活中我们常常还需要对列表进行排序、反转等操作,贴心的 Python 内置了函数帮助我们实现这些操作,Great!好了,废话不多说,开始咯~1. 使用方法sort()对列表进行永久性排序Python 方法sort()让你能够较为轻松地对列表进行排序。sort()语法:list.sort(key=None, rev...

2019-05-02 14:09:00 1076

原创 Python列表简介

前言列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的 Python 功能之一,它融合了众多重要的编程概念。在本文中,你将学习列表是什么以及如何使用列表元素。列表是什么?列表由一系列按特定顺序排列的元素组成。通常具备以下几个特点:列表中元素顺序是有序的。比如,你将1,2,3一次存入列表,那个列表中元素顺序一定是1,...

2019-04-29 18:29:52 3375 7

原创 Python之禅

前言编程语言 Perl 曾在互联网领域长期占据着统治地位,早期的大多数交互式网站使用的都是 Perl 脚本。那是,“解决问题的办法有多个”被 Perl 社区奉为座右铭。这种理念一度深受大家的喜爱,因为这种语言固有的灵活性使得大多数问题都有很多不同的解决之道。在开发项目期间,这种灵活性是可以接受的,但过于强调灵活性会导致大型项目难以维护。众所周知,项目维护得通过研究代码搞清楚当时开发项目的人是怎么...

2019-04-24 15:32:51 11398

原创 Python变量和简单数据类型

前言在本文中,你将学习可在Python程序中使用的各种数据,还将学习如何将数据存储到变量中,以及如何在程序中使用这些变量。运行hello_world.py时发生的情况在一切开始之前,让我们看一下 hello_world.py 里写了什么:print("Hello Python world!")运行上述代码,你会看到输出如下图1-1:图1-1实际上,即便运行这么简单的程序,Py...

2019-04-22 21:04:46 295

原创 Eclipse启动错误修复教程

前言前段时间更换了JDK的版本(从1.8升到了1.9),发现原本运行好好的Eclipse启动不了,报错:A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after...

2019-04-09 11:22:40 5301 1

原创 缓冲区管理问题

前言缓冲区管理问题是操作系统中P、V操作部分非常经典的问题!_缓冲区问题1. 问题描述有n个进程将字符逐个读入到一个容量为80的缓冲区中(n>1),当缓冲区满后,由输出进程Q负责一次性取走这80个字符。这种过程循环往复,请用信号量和P、V操作写出n个读入进程(P1, P2,…Pn)和输出进程Q能正确工作的的动作序列2. 问题分析n个进程对缓冲区之间是互斥关系,而它们和进程Q之...

2018-12-12 21:16:16 2089 2

原创 吸烟者问题

前言吸烟者问题是操作系统中P、V操作部分的经典同步问题,深刻理解吸烟者问题对我们学习操作系统有着很大的益处!(ง •_•)ง吸烟者问题1. 问题描述三个吸烟者在一个房间内,还有一个香烟供应者。为了制造并抽掉香烟,每个吸烟者需要三样东西:烟草、纸和火柴,供应 者有丰富货物提供。三个吸烟者中,第一个有自己的烟草,第二个有自己的纸,第三个有自己的火柴。供应者随机地将两样东西放在桌子上,允许一个...

2018-12-12 21:15:28 4039

原创 银行业务问题

前言银行业务问题也是操作系统中P、V操作部分的经典问题。(^∀^●)ノシ银行业务问题1. 问题描述某大型银行办理人民币储蓄业务,由n个储蓄员负责。每个顾客进入银行后先至取号机取一个号,并且在等待区找到空沙发坐下等着叫号。 取号机给出的号码依次递增,并假定有足够多的空沙发容纳顾客。当一个储蓄员空闲下来,就叫下一个号。请用信号量和P,V操作正确编写储蓄员进程和顾客进程的程序2. 问题分析...

2018-12-12 21:14:25 2576 3

原创 售票问题

前言售票问题是操作系统中P、V操作部分的经典的问题![]( ̄▽ ̄)*售票问题问题描述汽车司机与售票员之间必须协同工作,一方面只有售票员把车门关好了司机才能开车,因此,售票员关好门应通知司机开车,然后售票员进行售票。另 一方面,只有当汽车已经停下,售票员才能开门上下客,故司机停车后应该通知售票员。假定某辆公共汽车上有一名司机与两名售票员,汽车当前正在始发站停车上客,试用信号量与P、V操作写...

2018-11-30 18:57:05 3022

原创 独木桥问题

前言独木桥问题是操作系统中P、V操作部分的经典问题,有很多变种问题也是考试的重点,需要准确牢记!独木桥问题1问题描述东西向汽车过独木桥,为了保证安全,只要桥上无车,则允许一方的汽车过桥,待一方的车全部过完后, 另一方的车才允许过桥。请用信号量和 P、V操作写出过独木桥问题的同步算法。问题分析首先对于东西两侧的车辆而言,桥是一个互斥资源,而对东西两侧各自而言,每辆车上桥是同步关系,东西...

2018-11-30 13:53:21 16948 9

原创 农夫-猎人问题

前言农夫-猎人问题和苹果-桔子问题非常类似,也是操作系统中的经典问题农夫-猎人问题1. 问题描述有一个铁笼子,每次只能放入一个动物。猎手向笼中放入老虎,农夫向笼中放入 羊;动物园等待取笼中的老虎,饭店等待取笼中的羊。2. 问题分析和苹果-桔子问题类似,有4个进程,笼子是互斥量,猎手和动物园是同步关系,农夫和饭店也是同步关系。3. P、V操作semaphore cage = 1;...

2018-11-30 13:52:14 2942

原创 苹果-桔子问题

前言苹果-桔子问题是操作系统中P、V操作部分经典的问题,属于复杂一点的生产者-消费者问题,可以抽象的理解为两个生产者和两个消费者被连接到大小为1的缓冲区上。苹果-桔子问题1. 问题描述桌子上有一只盘子,每次只能向其中放入一个水果,要求:爸爸专向盘子里放苹果,女儿专等吃盘子中的苹果;妈妈专向盘子里放桔子,儿子专等吃盘子中的桔子;只有盘子为空时,爸爸或妈妈就可向盘子中放入一个水果;...

2018-11-30 13:51:18 5280

原创 睡眠的理发师问题

前言​ 睡眠的理发师问题是操作系统中P、V操作部分的经典问题睡眠的理发师问题1. 问题描述理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子,要求:如果没有顾客,理发师便在理发椅上睡觉一个顾客到来时,它必须叫醒理发师如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开2. 问题分析​ 理发师和顾客是同步关系,理发师等待顾客来,然后为顾...

2018-11-30 13:50:16 14702 16

原创 读者-写者问题

前言​ 读者-写者问题是操作系统中P、V操作部分经典的同步问题读者、写者问题1. 问题描述​ 读者与写者问题(reader-writer problem) (Courtois, 1971)也是一个经典的并发程序设计问题。有两组并发进程:读者和写者,共享一个文件F,要求:允许多个读者可同时对文件执行读操作只允许一个写者往文件中写信息任一写者在完成写操作之前不允许其他读者或写者工作写...

2018-11-30 13:49:07 3010

原创 生产者-消费者问题

前言也叫缓存绑定问题(bounded- buffer),是一个经典的、多进程同步问题。生产者、消费者问题1. 问题描述​ 有n个生产者和m个消费者,连接在一个有k个单位缓冲区的有界缓冲上。其中,生产者进程Producer_i和消费者进程Consumer_j都是并发进程,只要缓冲区未满,生产者Producer_i生产的产品就可投入缓冲区;只要缓冲区不空,消费者进程Consumer_j就可从...

2018-11-30 13:47:24 446

原创 哲学家就餐问题

前言哲学家就餐问题是操作系统中P、V操作部分的经典问题。哲学家就餐问题是在计算机科学中的一个经典问题,用来演示在并行计算中多线程同步(Synchronization)时产生的问题。在1971年,著名的计算机科学家艾兹格·迪科斯彻提出了一个同步问题,即假设有五台计算机都试图访问五份共享的磁带驱动器。稍后,这个问题被托尼·霍尔重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。哲学家就...

2018-11-30 13:38:51 957

原创 Laravel ORM写的语句怎么打印出原生Sql语句

Laravel ORM写的语句怎么打印出原生Sql语句  ORM有诸般好处,但刚接触Laravel的新手在不熟悉的情况下无法判断自己写的ORM语句是否正确,这个时候就需要将ORM写的语句打印成原生Sql语句。  Laravel Builder类中有个toSql()方法,假如我的Model为User,现在想查询年龄为18的用户,用法如下: $sql = User::where('age', 18

2017-08-31 22:56:12 7742

空空如也

空空如也

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

TA关注的人

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