自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 mysql密码相关问题

文1菜鸡乱给权限导致ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)的解决方法登录MySQL时突然报错(ps:自己确定用户名和密码没错),这种情况的解决方法1,报错如下:2,解决方法:2,1 问题分析​ 在关闭数据库的命令发现mysql关不了,提示Warning: World-writable config file '/etc/mysql/mysql.conf.d/

2021-04-23 16:14:00 126

原创 ubuntu下C的多线程的线程同步

为什么需要线程同步因为在多线程环境中,线程之间由于竞争共享资源(临界资源)容易引起数据不一致的问题。一般采用互斥锁(互斥信号量)解决,保证只有一个线程进入临界区。这篇文章就讲互斥锁,读写锁互斥量(mutex):主要用于保护共享数据,确保同一时间只有一个线程访问数据。互斥量从本质上来说是一把锁,在访问共享资源前对互斥量进行加锁,访问完成后释放互斥量(解锁)。对互斥量进行加锁之后,任何其他试图再次对互斥量加锁的线程都会被阻塞直到当前线程释放该互斥锁。这样就可以保证每次只有一个线程可以向前执行。读写锁(

2020-08-13 21:51:50 489

原创 ubuntu下C的多线程的简单实现

线程概念什么是线程LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下) 进程:独立地址空间,拥有PCB 线程:也有PCB,但没有独立的地址空间(共享) 区别:在于是否共享地址空间。 独居(进程);合租(线程)。Linux下: 线程:最小的执行单位 进程:最小分配资源单位,可看成是只有一个线程的进程。Linux内核线程实现原理类Unix系统中,早期是没有“线程”概念的,80年代才引入,借助进程机制实现出了线程的概念。因此在这类系统中,进

2020-08-13 21:21:24 2834

原创 ubuntu下C的进程间通信

这篇文章通过pipe(管道),FIFO(命名管道),mmap(共享存储映射)的介绍和代码实例去认识并熟悉进程间通信。1.认识IPC方法Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。在进

2020-08-13 17:50:17 1007

原创 ubuntu下C的多进程的简单实现

实现C++多进程要先了解一系列的相关函数和相关概念1.进程相关概念1.1程序和进程:程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁…)进程,是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)程序 → 剧本(纸) 进程 → 戏(舞台、演员、灯光、道具…)同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载为不同的进程(彼此之间互不影响)如:同时开两个终端。各自都有一个bash但彼

2020-08-13 16:49:29 969

原创 Ubuntu下的常用linux命令及参数

1.Linux 命令格式command [-options] [parameter1] …command:命令名,相应功能的英文单词或单词的缩写[-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选parameter1 …:传给命令的参数,可以是零个一个或多个2.查看帮助文档一般是 Linux 命令自带的帮助信息,并不是所有命令都自带这个选项。如我们想查看命令 ls 的用法:ls --help3.manman 是 Linux 提供的一个手册,包含了绝大部分的

2020-08-13 11:25:19 1284

原创 Flask入门1

这里了解基本知识并创建一个Hello World网页1.Flask基本知识点了解FlaskFlask框架的特点常用的Flask扩展包安装环境配置虚拟环境安装Flask从Hello World开始给路由传递参数返回状态码重定向正则URL捕获异常设置cookie和获取cookie扩展上下文请求钩子Flask装饰器路由的实现Flask-Script命令行正式了解Flask框架1)Flask作为Web框架,它的作用主要是为了开发Web应用程序。2)所有

2020-08-12 23:42:27 88

原创 C++STL入门之Map

1.Map和multimap容器1.1map/multimap的介绍1)map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。2)map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。3)map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。map可以直接存取key所对应的value,支持[]操作符,如map[key]=value。4)multi

2020-08-12 22:18:43 115

原创 C++STL入门之List,Set

1.List容器1.1List介绍1)list是一个双向链表容器,可高效地进行插入删除元素。2)list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。1.2list对象的创建list采用采用模板类实现,对象的默认构造形式:list lstT;list lstInt; //定义一个存放int的list容器。list lstFloat; //定义一个存放float的list容器。list lstString; //定义一个存放string的

2020-08-12 20:48:47 607

原创 C++STL入门之Deque,Stack,Queue

1.Deque容器1.1Deque介绍1)deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。2)deque在接口上和vector非常相似,在许多操作的地方可以直接替换。3)deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。4)deque头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除元素比较费时。5)头文件是deque1.2deque对象的创建

2020-08-12 17:42:28 240

原创 C++STL入门之String,Vector

1.基本概念STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采 用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。STL的六大组件:容器(Container

2020-08-12 16:05:06 304

原创 C/C++关键字及运算符的简单用法4

1.sizeof关键字1.1简单用法sizeof 为C语言的一个主要关键字,而并非是一个函数,虽然其后经常会跟着一对括号,这就导致许多人认为这是一个函数,进而产生误解。用途:求某一特定的变量、指针、结构体、枚举、联合体等所占内存空间的大小。1.2示例:#include<iostream>using namespace std;int main(){ char str1[]={'h','e','l','l','o'}; cout<<"str1="&lt

2020-08-12 13:56:45 139

原创 C/C++关键字及运算符的简单用法3

1.typedef关键字1.1简单介绍C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。1.2简单用法typedef的4种主要用法1)为基本数据类型定义新的类型名。有利于增强程序的可拓展性。示例:typedef long doub

2020-08-12 12:03:06 177

原创 C/C++关键字及运算符的简单用法2

1.extern的用法1.1简单理解简单的c知识:如果全局变量不在文件的开头定义,有效的作用范围将只限于其定义处到文件结束。如果在定义点之前的函数想引用该全局变量,则应该在引用之前用关键字 extern 对该变量作“外部变量声明”,表示该变量是一个已经定义的外部变量。有了此声明,就可以从“声明”处起,合法地使用该外部变量。extern放在变量或者函数之前,表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义,如此可以不用导入变量或者函数所在的文件。1.2用法实例

2020-08-11 22:53:46 111

原创 C++关键字及运算符的简单用法1

1.双冒号作用域运算符1.1 ::的用途1.2 代码示例#include <iostream>using namespace std;int count=200;void test(){ int count=100; cout<<"test count = "<<count<<endl; cout<<"global count"<<::count<<endl;}int main

2020-08-11 13:42:16 267

原创 报错MISCONF Redis is configured to save RDB snapshots

启动Flask报错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (

2020-07-31 21:10:15 160

原创 在ubuntu环境下搭建python virtualenv虚拟环境,及基本命令

在ubuntu环境下搭建python virtualenv虚拟环境,及基本命令1.安装查看是否安装virtualenv如果在列表里有如下图的安装包,表示已经安装如果没有,请用如下命令安装pip3 install virtualenvpip3 install virtualenvwrapper如果出现:locale.Error: unsupported locale setting的错误输入如下命令:export LC_ALL=c然后重新执行安装命令,安装成功后用cd命令回到家目录,

2020-07-23 12:08:24 639

原创 python多进程的多种实现和资源共享

在一个程序中,有很多的操作是非常耗时的,如数据库读写操作,IO操作等,如果使用单线程,那么程序就必须等待这些操作执行完成之后才能执行其他操作。使用多线程,可以在将耗时任务放在后台继续执行的同时,同时执行其他操作。

2020-04-07 15:44:50 664 2

原创 python3的多线程实现

python的多线程虽然在GIL的作用下其执行速度有一定影响,但是在有些情况下还是可以极大的提高python程序的执行速度的,比如I\O密集的程序。话不多说直接上代码,如有错误还望指点。

2020-04-03 20:18:19 403

C++进阶宝典.docx

C++进阶课程讲义_v1.0.4

2020-08-12

空空如也

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

TA关注的人

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