自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Python Tkinter实现子窗口不关闭,父窗口无法使用

直接上代码:(注:这里的代码并不能执行,只是写出了一些关键地方的代码)# 创建根窗口tk = tkinter.Tk()# 创建子窗口# 这里需要使用Toplevel方法来创建子窗口ttk = tkinter.Toplevel(self.ptk)# 当子窗口出现的时候,禁止父窗口使用tk.attributes('-disabled', 1)#子窗口注册一个消息回调函数,当子窗口关闭时,通过这个函数来重新使得父窗口可用tk.protocol("WM_DELETE_WINDOW", clo

2022-03-10 21:48:14 4273 1

转载 Linux杀掉D状态进程

D状态(disk sleep)进程用kill -9命令是不管用的,最简单的方法就是reboot, 除此还可以修改内核,将其进程状态转化为别的状态,然后kill掉。 新建文件夹, cd进去,新建killd.c 文件,代码如下:#include <linux/init.h> #include <linux/kernel.h> /*Needed by all modules*/#include <

2017-10-12 15:15:22 3955

原创 openstack-nova-创建云主机代码分析

Nova API的实现,以创建云主机过程分析1. 首先我们要清楚,为nova添加一个新的api是很简单的,因为上面的那一套HTTP请求不需要我们管,只是照着来写就行了,   主要是你的api内的自己的逻辑;2. 所有的api文件都是放在目录’nova/api/openstack/compute’下,M版本的代码没有了目录’nova/api/openstack/compute/contrib’

2017-09-16 13:38:53 800

转载 Openstack之Nova创建虚机流程分析

前言       Openstack作为一个虚拟机管理平台,核心功能自然是虚拟机的生命周期的管理,而负责虚机管理的模块就是Nova。本文就是openstack中Nova模块的分析,所以本文重点是以下三点: 先了解Openstack的整体架构,搞清楚为什么要用这样的架构;然后再了解架构中的各个组件,组件提供的主要功能与各个组件之间的交互;了解虚机的启动过程,能在遇到问题时发现问题出在哪个模

2017-09-16 13:36:00 720

转载 Nova创建虚拟机(指定IP地址和生成节点)

1. 背景需求  在openstack中,nova负责openstack虚拟机的生命周期的管理,neutron则负责虚拟机的网络管理工作,默认情况下,创建一台虚拟机,nova会根据nova-scheduler调度算法,选择一台最合适的compute节点,同时会从neutron的地址池中分配一个ip地址给虚拟机,从而完成虚拟机的创建过程。  然而,在一些特殊的场景中,如相同业务的虚拟机,希望落在不通的

2017-09-16 13:29:27 5311

原创 LCM中C++的API介绍

LCM支持多种语言,也有很多版本,这里只介绍C++的几个类以及方法。类型简介C++的API,LC提供了三个类以及两个结构体来封装LCM,他们分别是: class lcm::LCM struct lcm::ReceiveBuffer class lcm::Subscription struct lcm::LogEvent class lcm::Lo

2017-01-09 16:39:36 6214

原创 初试LCM

LCM is a set of libraries and tools for message passing and data marshalling,被广泛使用与无人车通信。其官方文档地址为:http://lcm-proj.github.io/这里我们不讲安装,我们只讲使用。(安装在文档中都写有)http://lcm-proj.github.io/build_instructions.html初

2017-01-09 14:55:41 13266 8

原创 C++重载<<运算符

C++允许我们重载其运算符,其规则这里不再细说。C++重载运算符,一般分为两种方式,一种声明为类方法,另一种就是声明为友元函数来实现。如果声明为类方法,我们应该注意其实质,这里举个例子来说明问题:class Test{public: Test(int n=10); Test operator +(const Test&);private: int num;};这里我们

2016-11-29 20:47:47 1914

原创 插入排序与希尔排序

插入排序插入排序是基于减治法的一种排序算法,其思想是若对N个数进行排序,假设前N-1个数已经有序,只需要将最后一个元素插入到合适的位置即完成排序。虽然思想更接近于使用递归,但是使用迭代却又更高的效率。使用迭代来实现插入排序,首先将数组第一个元素当做一个有序队列,然后将第二个元素当做插入元素插入,插入第三个元素时,前面两个当做有序序列进行插入,然后依次顺推,直到最后一个元素完成插入。下面是代码:vo

2016-11-29 13:27:31 391

原创 使用C++实现赫夫曼树

赫夫曼的作用和效果这里不再叙说,这里只是我的实现。实现原理在数据结构(C语言版)中有详细的描述关于如何创建一颗赫夫曼树,也就是赫夫曼算法:**(1)根据给定的n个权值构成n棵二叉树集合F,每棵二叉树的左右节点为空。 (2)在F中选取两棵根节点的权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根节点的权值为其左右子树上根节点的权值之和。 (3)在F中删除这两棵树,同时将新得到的二叉

2016-11-28 11:00:44 1079

原创 数组实现循环队列

队列可用链表来实现,实现也很简单。但是队列也可用数组来实现,使用循环数组比链表有更高的效率。由于循环数组的特殊性,一个循环数组中必须空出一个位置,不然无法判断队列是否为空或者为满的。循环数组来实现队列的难点便在索引的值,我们要把数组当做一个圆来看,当索引来到数组的0或者最后一个位置时,必须能够得到正确的索引。下面是类声明,这只是简化版的:class Queue{public: Queue

2016-11-24 15:12:56 1376

原创 一元多项式的表示和相加

一元多项式的表示和相加是数据结构(C语言)中的一个简单的问题,这里我们用C++的一些东西来实现它。(简洁版)首先是表示多项式,多项式有一些列的单项组成,每一项都有系数和指数两个量,考虑到多项式的长度和指数的不确定性,显而易见,应该使用链表来存储它。由上面的叙述很容易得到单项的结构:struct Poly{ int first; int second; Poly *next;

2016-11-24 11:07:31 6280

原创 两个非递减有序集合合并为一个非递减有序集合

已知线性表LA和LB中的数据元素或是按值非递减有序排列,现要求将LA和LB合并为一个新的线性表LC,且LC中的元素要求同样按值非递减排列。上述问题是数据结构(C语言)上的一个线性表的合并问题,这里使用C++的一些东西来完成它。void MergeList(const vector<int>&la,const vector<int>&lb,vector<int>&lc){ vector<in

2016-11-22 11:03:29 6351

空空如也

空空如也

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

TA关注的人

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