- 博客(52)
- 收藏
- 关注
原创 联想Y7000安装Ubuntu1804(虚拟机)
环境:联想Y7000,VMware player 15, Ubuntu 18.04.3安装后启动时会卡在start network manager script dispatcher service的启动过程中,大概原因是因为Ubuntu的网卡驱动和Y7000的网卡驱动有冲突或者不适配的原因,解决方法:关闭虚拟机打开虚拟机设置,在硬件-》选项-》网卡 中关闭启动时连接网络的选项重新打...
2020-02-03 22:09:27
2102
2
原创 Vue入门todolist组件
<!DOCTYPE html><html><head><meta charset="utf-8">&
2019-03-16 19:53:16
370
原创 Vue入门
创建第一个Vue实例<!DOCTYPE html><html><head><meta charset="utf-8">&a
2019-03-16 19:05:49
219
原创 Ubuntu安装问题汇总
1. 开机提示acpi error一般这个问题是因为显卡的原因造成的,系统没有带显卡驱动,所以会有电源管理方面的问题解决方法:安装时在install ubuntu界面按e,在linux开头那行的末尾处加入 acpi=off然后保存进行安装安装完成后重启如果不能进入系统或者提示acpi error,同样在grub引导界面按e,同样的位置加入acpi=off...
2018-12-14 12:51:41
1059
1
原创 python子线程中执行事件循环
问题: sanic中使用用redis的订阅发布实现功能,如果没有发布的情况下,redis是阻塞在订阅处的,导致sanic无法处理路由。原因: sanic自带的websokcet是协程执行的(在一个线程中循环执行一个事件循环),redis也是单线程的,订阅时如果没有任何消息发布,线程会阻塞在订阅消息处,导致线程阻塞,由于整个系统只在一个线程中运行,所以sanic无法处理其他路由from sani...
2018-12-06 11:32:11
2285
原创 ubuntu升级python版本(3.5->3.6)
安装aioredis时提示Python版本需>=3.5.3,所以进行升级命令如下:#获取最新的python3.6,将其添加至当前apt库中,并自动导入公钥$ sudo add-apt-repository ppa:jonathonf/python-3.6$ sudo apt-get update$ sudo apt-get install python3.6# 移除原3.4li...
2018-11-15 13:31:52
16749
1
原创 条件变量
条件变量(condition_variable): 假设现在有两个线程A和B,当线程A执行到一定程度时才能让线程B执行,这个时候就需要条件变量了,我们设置一个全局变量,初始条件为假,线程B等待条件为真,向下执行,条件由线程A设置为真。 这样的需求,就好像是线程B一直在轮询条件,但是在轮询的过程中会一直消耗CPU,导致资源的浪费,所以就设置了通知机制,当线程A将条件设为真之后通知B。 另外就是...
2018-08-26 16:15:59
796
原创 自旋锁
C++11 版不带自旋锁的API,我们可以手动实现,有的时候线程执行的功能比较简单,或者说代码量较少,如果使用mutex的话,开销比较大,但是使用mutex的锁,线程处于非运行态时不占用CPU,这是其他的线程可以运行,使用自旋锁时线程被阻塞,但是被阻塞线程依然不会让出CPU,而是会不断的while来检查锁的状态,有点浪费CPU,所以自旋锁一般适用于简短的不耗时的线程 自旋锁可以使用如下方式来实现...
2018-08-25 21:08:21
3004
原创 二叉树的性质
二叉树的每层上至多有2i−12i−12^{i-1}个节点(i>=1)深度为k的二叉树至多有2k−12k−12^k-1个节点,满二叉树的深度k=log2(n+1)k=log2(n+1)k=log_2(n+1),n是二叉树的节点个数对于任何一棵二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1 推倒: 假设二叉树的节点总数为n,度为1的节点个数为n1 n=n0+...
2018-08-22 09:08:15
353
原创 逆波兰计算(中缀转后缀、后缀表达式计算)
我们利用栈将中缀表达式转换为后缀表达式(逆波兰表达式)来计算表达式此程序支持整数运算(+、-、*、/、^、()) 中缀表达式转后缀表达式遍历中缀表达式,遇到操作数就输出,遇到符号就压入栈中(栈中的运算符为挂起状态),但是操作符的压栈出栈有如下规则:如果当前运算符的优先级高于栈顶运算符,则直接将此运算符压入栈中 如果当前运算符的优先级低于栈顶运算符,则将栈顶运算符输出,直到碰见优先...
2018-08-20 10:31:36
340
原创 栈和队列(笔记)
栈先进后出的特性,也就是对于的插入和删除操作都是在栈顶进行的队列先进先出,从队尾插入,对头弹出一般情况下栈用顺序表来实现,因为栈的操作需要栈顶进行弹出操作,此时需要将栈顶指针指向上一个元素,如果用链表来做,则需要从头开始查找(单链表),使用循环链表也需要将指针循环一圈,此时的时间复杂度都是O(n),也可以采用双向链表,但是双向链表实现起来并不简单(和顺序表相比),而使用线性表来进行弹出操作...
2018-08-20 08:09:27
290
原创 互斥量mutex
互斥量是将资源互斥,即进程在某一相同的程序时,可以将某一程序片段设定为互斥量,线程不能同时访问此代码段,只有当前线程退出此互斥锁,另一线程才可以进入// mutex互斥量.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <thread>#include <cstdio>#include <iostr...
2018-08-02 09:53:43
737
原创 一个原子操作的小例子-赛跑
生命一个atomic_flag对象,此对象是一个BOOL类的变量,有两种操作test_and_set 将atomic_flag对象设置为true并获得设置之前的值,如果atomic_flag为false,则test_and_set会将此值设置为true并返回false,如果为true,则设置为true,并返回true clear 将atomic_flag变量设置为false,无返回值...
2018-08-02 09:22:25
920
原创 原子操作atomic
C++中有atomic类和atomic_flag两个类,其中atomic类用于定义一个原子操作,atomic_flag定义一些与原子操作相关的函数如下操作:// atomic原子操作.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <atomic>#include <iostream>#include...
2018-08-02 08:55:58
956
原创 信号量
信号量(Semaphore)也是多线程控制中的同步机制,临界区每一只允许有一个进程访问临界资源,信号量可以设置多个进程同时访问某一资源,在设置的线程数范围内,每增加一个线程,信号量的计数就会减1,直至计数减为0,不再发出信号,其他线程不能再访问共享资源,一旦有线程完成任务,退出访问共享资源,信号量计数就会加1,产生信号,其他线程可以进入HANDLE WINAPI CreateSemap...
2018-07-30 22:07:54
294
原创 python读取txt文件中的数组
def read_data(dir_str): ''' 此函数读取txt文件中的数据 数据内容:科学计数法保存的多行两列数据 输入:txt文件的路径 输出:小数格式的数组,行列与txt文件中相同 ''' data_temp=[] with open(dir_str) as fdata: while True: ...
2018-07-30 21:30:21
9585
原创 线程死锁产生的必要条件
互斥条件:一个资源每次只能被一个进程使用 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放 不可剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺 循环等待条件:若干进城之间形成一种头尾相接的循环等待资源关系死锁演示程序:// 死锁.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <proces...
2018-07-30 20:06:45
401
原创 windows并发编程API(五)-应用
火车票两个窗口售票,两个窗口(开启两个线程)同时在售票,总票数n张,两个窗口单独售票,使用的API如下:_beginthread//创建线程WaitForMultipleObject//阻塞等待线程执行Sleep//线程休眠 程序例程:// 两个窗口售卖火车票.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include...
2018-07-29 19:26:41
383
原创 windows并发编程API(四)
在使用涉及到CRT存储堆操作的CRT库函数中的多线程编程中,使用CreateThread来开始线程是很危险的,容易造成线程的意外终止,windows核心编程中推荐使用_beginthread、_beginthreadx和相对应的_endthread、_endthreadx函数uintptr_t _beginthread( // NATIVE CODE void( __cdecl *st...
2018-07-28 19:33:22
248
原创 windows并发编程API(三)
DWORD WINAPI WaitForMultipleObjects( _In_ DWORD nCount, _In_ const HANDLE *lpHandles, _In_ BOOL bWaitAll, _In_ DWORD dwMilliseconds);nCount-要等待的线程的个数 lpHandles-句柄数组名...
2018-07-28 18:39:28
365
原创 windows并发编程API(二)
DWORD WINAPI WaitForSingleObject( _In_ HANDLE hHandle, _In_ DWORD dwMilliseconds);等待线程执行hHandle-线程句柄 dwMilliseconds-等待毫秒数,设置为INFINITE,则为无线等待,有点join的意思返回参数WAIT_ABANDONED WAIT_OBJE...
2018-07-28 16:57:06
257
原创 windows并发编程API(一)
HANDLEWINAPICreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINE lpStartAddress, _In_opt_ __drv_aliasesMem LPVOID lp...
2018-07-28 15:33:48
719
原创 qt使用
安装就不说了,网上一搜一大箩筐新建工程:文件->新建文件或项目,图片如下:上图中是选择一个QT界面进行开发,点击“choose”之后可已新建一个空的文件夹,并将“设为默认的项目路径”前面打勾,这样编译,调试的一个文件都会放在新建的文件夹下,方便管理我安装的时候全部组件都选择了,所以会有这么多的选项,选择MinGW就行了,此处可能出现没有可用的kits的问题,自行百度解决吧,或者安装的时候全选...
2018-05-08 09:36:30
321
原创 UBuntu python切换版本
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150sudo update-alternatives --config python
2018-04-25 14:03:35
615
原创 计算字符串最后一个单词的长度,单词以空格隔开
题目描述计算字符串最后一个单词的长度,单词以空格隔开。 输入描述:一行字符串,非空,长度小于5000。输出描述:整数N,最后一个单词的长度。示例1输入hello world输出5#include<iostream>#include<string>using namespace std;int main(){ string str; getline...
2018-04-15 17:59:56
1773
原创 MNIST手写数字库格式转换(c++可用的格式)
static int ReverseInt(int i) //转换魔数,读取数据库中的图片数,行数,列数等信息{ unsigned char ch1, ch2, ch3, ch4; ch1 = i & 255; ch2 = (i >> 8) & 255; ch3 = (i >> 16) & 255;...
2018-04-12 16:42:35
426
原创 opencv创建进度条使用userdata
#include<iostream>#include<opencv2/highgui.hpp>#include<opencv2/core.hpp>#include<opencv2/imgproc.hpp>using namespace std;using namespace cv;int definePos=50;char str[]=...
2018-04-09 17:05:24
595
原创 类的大小(sizeof)
类的大小与成员变量(非static)和虚函数指针有关,还要考虑4字节对齐struct A{//32位编译器 A() {} ~A() {} int m1; int m2;};struct B:A{ B() {} ~B() {} int m1; char m2; static char m3;};struct C{ ...
2018-03-28 09:44:57
393
原创 小觅MYNTEYE双目摄像头环境搭建
1.打开盒子里面有一块主板和一根儿数据线2.插电脑USB3.0(一定要3.0)口,点击主板上的小按钮,若在松手时绿灯闪烁则说明供电正常(点击按钮是重启)3.查看电脑设备管理器中是否有MYNTEYE4.下载MYNTEYE Previewer软件百度网盘,找到相对应版本的exe文件(windows下),一般都是最新的,本人使用的1.8版的5.管理员权限安装(可任意路径,最好没有中文)6.安装完成后重启...
2018-03-06 22:16:15
19285
2
原创 python读取文件夹中文件的名字
本程序自己经常用,所以在此做个笔记:import osfor a,b,c in os.walk(r'F:\Pythoncode'): print(a) print(b) print(c)for i in c: print(i)a:路径名b:当前路径下的文件夹名字c:当前路径下的文件名字如果当前路径下有文件夹,则继续深入先深入,在广度,即沿着当前路径深入下去,直...
2018-03-06 20:54:17
6285
原创 MFC添加菜单的位置及其响应顺序
新建MFC工程然后点击资源视图->Menu->双击资源,添加菜单按钮TEST在资源视图中右击TEST按钮->属性->Popup设置为False->右击TEST按钮->添加事件处理程序依次选择四个类CMainFrame、CAPP、CDoc、CView,分别添加时间处理程序本实验添加MessageBox,通过显示不同的内容来判断是响应顺序上述的类中CMenuDoc和...
2018-02-26 21:47:50
1075
原创 python读取txt文件中的数组
写此博客只是为做笔记def read_data(dir_str): ''' 此函数读取txt文件中的数据 数据内容:科学计数法保存的多行两列数据 输入:txt文件的路径 输出:小数格式的数组,行列与txt文件中相同 ''' data_temp=[] with open(dir_str) as fdata: wh
2018-01-24 19:29:29
9960
原创 C++传递二维数组参数
传递一维数组比较简单定义函数:void function1(int *p,int size);.//size是数组大小另调用程序中定义有数组:int a[5] = { 1, 2, 3, 4, 5 };函数调用时如下:function1(a, 5);在被调函数中使用元素时*(a+i)表示的就是元素a[i]--------------------
2017-12-10 14:09:23
477
原创 C++从txt文件中读取二维的数组
此文章用来做笔记,从MATLAB中保存的二维数组1500*2的数据到txt文件中,格式化保存方式如下:MATLAB代码:fid=fopen('data.txt','wt');for i=1:1500 fprintf(fid,'%.3f\t%.3f\n',r(i,:));endfclose(fid);其中r是1500*2的矩阵在C++中读取到程序中,使用文件流:
2017-12-09 20:57:34
29800
3
原创 C++格式化输出
C++常采用cout数据流来输出字符,当然也可以使用printf语句(要包含stdio.h头文件),但是在C++中还是常采用cout cout可以使用setw(int n)来设置域宽,此操作符作用于后面的操作数,如:cout<<"s"<<setw(8)<<"a"<<setw(4)<<"b"<<endl;输出结果:`s a b`其中setw(8)作用于”a“,setw(4)作用于”b
2017-11-16 12:57:41
855
原创 C++按位操作
C++能够对数据按二进制位进行运算,有6个位运算符。 首先区分一下与(&&)和按位与(&)、或(||)和按位或(|)、取反(!)和按位取反(~),还有另外三个位运算符分别是左移位(<<)、右移位(>>)、按位异或(^) 按位与(&): 将两个操作数对应的每一位分别进行逻辑与操作(3&5=1) 使用按位与(&)操作符可以将操作数中若干位置0(其他位保持不变),或者取操作数中的若干指定位。
2017-11-15 12:56:20
2223
原创 django初探
前几天用python写nao机器人了,就顺带多花点时间把django了解一下吧django是python写后台时用的框架安装djangosudo pip install django==1.8 安装1.8版的django 也可省略==1.8 安装最新版的django建立django工程:django-admin.py startproje
2017-11-06 20:22:45
197
原创 ubuntu下visual studio code配置C++环境
1.安装第三方插件:在扩展商店里搜索C++,使用微软推荐的插件,2.在电脑中新建一个文件夹(C++只能在文件夹中编译执行,不能单独使用一个文件,也就是说要打开一个文件夹),在文件夹中新建一个.cpp文件3.visual studio code打开文件夹4.在.cpp文件中添加c++程序#include#includeusing namespace std;int main()
2017-11-04 17:08:19
4909
1
原创 nao机器人使用
nao编程控制方式:1.使用Choregraphe此方法是建立指令盒(参考手册),举例说明建立一个设置关节角度(控制关节移动)的指令盒,新建脚本指令盒,编辑名字,提示,输入输出点,还有参数输入点:可添加多个输入点,每个输入点都会在脚本文件中创建相应的方法,脚本文件中方法的名字和设置输入点时的Name相对应,如默认输入点名字onStart,在脚本文件中对应的会产生 如下方法:当此输入点被
2017-11-03 22:16:56
6345
原创 jade include和extends、block
jade模板是MVC模型中的V--视图,可以编写网页文件,元素和HTML相同,基本使用就是将html中的标签尖括号去掉,如:HTML:这是HTML中的写法jade:p 这是jade中的写法上述两种写法的显示效果相同但是在jade中没有结束标签,浏览器或者说编译器(从jade编译输出成HTML)是怎么判断每个标签的结束范围呢jade中采用的方法是缩进,子标签比父标签向后缩进两个空
2017-10-16 19:22:13
2579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人