编程基础
文章平均质量分 92
沉迷单车的追风少年
CSDN博客专家,CSDN商业化专家,官方内容合作伙伴,官方认证“人工智能领域优质创作者”,入选2023年中国开发者影响力年度榜单。
代表专栏《Diffusion Models与深度学习》、《手把手写深度学习》、《深度学习-计算机视觉》、《手把手写C++服务器》等。
展开
-
《大型网站性能优化指南——从前端、网络、CDN到后端、大促的全链路性能优化详解》读后感和一点思考
前言:这几天拜读了阿里的这本书,这本书全栈式地讲了一个成熟稳定的大型高并发高容量系统的优化过程,读下来很有收获,也有一些自己的思考。CDN-DNS、网络部分讲的挺精彩的,值得一读的一本书。由于我是后端方向,前端的部分就没出现在这篇文章里(因为看不懂)。目录先挑剔一下本书整体结构高性能网站建设指南 12条基本准则用户体验性能指标QPS相关公式CPU利用率影响因素压测的意义QPS预估-二八法则网络同步与异步模型IO同步与异步模型CDN基本工作流程参考原创 2021-06-20 11:03:17 · 779 阅读 · 4 评论 -
Linux grep正则表达式学习笔记
目录基础参数字符类匹配正则表达式限定符正则序列检测符或逻辑&&和逻辑正则特殊字符正则非打印字符零宽断言正则表达式模式说明参考基础参数-a:将二进制文档以文本方式处理-c:显示匹配次数-i:忽略大小写差异-n:在行首显示行号-o:只显示匹配字符,不显示匹配行-A:After的意思,显示匹配字符串后n行的数据-B:before的意思,显示匹配字符串前n行的数据-E:延伸的正则表达式使用,等价于egrep-v:显示没有匹配行--c原创 2021-04-15 18:59:16 · 313 阅读 · 0 评论 -
C++中将string转换成int的两种方式
搜过好几次了,搜过就忘,不如自己记下来方式一:string str = "100";int a = atoi(str.c_str());方式二:string str="100";int a = stoi(str);原创 2020-03-30 15:51:27 · 786 阅读 · 0 评论 -
Qt信号与槽和C++信号处理
目录C++信号处理Qt信号与槽基本格式:这个语句中的各部分含义:信号与槽的连接方式自定义信号 :基本格式注意:注意点:官方手册选读信号与槽机制的优点:信号与槽的效率信号与槽效率低的原因C++信号处理C++有类似Qt中信号与槽的功能,但是其功能远没有Qt强大C++中的常用信号量:macro signal SIGABRT ...原创 2019-07-14 17:00:37 · 889 阅读 · 0 评论 -
C/C++填坑笔记——预处理器和标准库&&面向对象类库
日常填坑……目录预处理器参数宏# 运算符## 运算符常用预定义宏C++标准库C++面向对象类库参考:预处理器参数宏记得当时大一时上机时我这么写还被老师gg了……#include <iostream>using namespace std; #define MIN(a,b) (a<b ? a : b) int ma...原创 2020-02-06 10:46:23 · 297 阅读 · 0 评论 -
C/C++填坑笔记——继承、重载和多态
目录继承语法:访问控制和继承多继承重载函数重载运算符重载多态虚函数继承继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成...原创 2020-02-03 17:27:22 · 675 阅读 · 0 评论 -
C/C++填坑笔记——类和对象
C/C++还是大一学的,两年多过去了忘了好多,坑一大堆目录public,private,protect构造函数与析构函数友元函数拷贝构造函数this指针类的静态成员静态成员函数内联函数public,private,protect private 成员只能被本类成员(类内)和友元访问,不能被派生类访问; protected 成员可以被派生类访问...原创 2020-02-03 16:46:19 · 245 阅读 · 0 评论 -
C/C++填坑笔记——指针和引用
C/C++还是大一学的,两年多过去了忘了好多,坑一大堆目录指针NULL空指针指针与数组传递指针给函数从函数返回指针引用引用和指针把引用作为返回值指针NULL空指针在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为 NULL 值的指针被称为空指针。NULL 指针是一个定义在标准库中的值为零的常量。...原创 2020-02-03 15:37:47 · 283 阅读 · 0 评论 -
编程基础——虚函数 explicit 笔记
目录explicit(转载)虚函数(转载)来源explicit(转载)在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++新增了关键字explicit,用于关闭这种自动特性。即被explicit关键字修饰的类构造函数,不能进行自动地隐式类型转换,只能显式地进行类型转换。注意:只有一个参数的构造函数...原创 2020-01-23 15:51:18 · 431 阅读 · 0 评论 -
memset初始化高维数组为-1/0
#include <cstring>int dp[100][100];memset(dp,-1,sizeof(dp));memset(dp,0,sizeof(dp));完整代码: #include<iostream>#include<cstring>using namespace std;int dp[100][100];int m...原创 2020-01-08 21:21:58 · 971 阅读 · 0 评论 -
编程基础——笔记:MATLAB高效编程五条建议
MATLAB经常慢到蛋疼,虽然大一些的程序放到服务器上跑,但是使用一些高效编程手段还是非常使用的,整理一波。目录1.MATLAB的优势是矩阵运算,尽量不写循环2.预分配内存3.列优先准则4.向量编程加速5.使用稀疏矩阵1.MATLAB的优势是矩阵运算,尽量不写循环2.预分配内存在C++/C中,任何变量都要预先分配内存空间;而MATLAB可以不定义变量就直接赋值,...原创 2019-10-19 22:08:20 · 464 阅读 · 0 评论 -
C++/C 字符和整数之间相互转换
在CSDN上搜索“C++/C 字符和整数之间相互转换”大多是一下四种方法:1.int a = 10;char *intStr = itoa(a);string str = string(intStr);2.int a = 10;stringstream ss;ss << a;string str = ss.str();3. C++11 (推荐,如果...原创 2019-08-29 12:55:40 · 277 阅读 · 0 评论 -
多CPU,多核,多进程,多线程
当面临这些问题的时候,有两个关键词无法绕开,那就是并行和并发。首先,要先了解几个概念: 1、进程是程序的一次执行。 2、进程是资源分配的基本单位(调度单位)。 3、一个进程可以包括多个线程。 4、在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。 5、操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。 6、操作系统内存管理...转载 2019-07-27 21:53:48 · 410 阅读 · 0 评论 -
Python基础——_thread多线程
Python常用的多线程:_thread(Python2.X是thread),面向过程 threading,比上者更高级,面向对象这节先学习_thread(),其实非常简单,使用start_new_thread()开启一个新线程即可,代码如下:# ——创建时间:2019.3.2——# 多线程之基本_threadimport randomimport _thread as th...原创 2019-03-02 17:16:08 · 479 阅读 · 0 评论 -
Python基础——Thread创建管理多线程
Python常用的多线程:_thread(Python2.X是thread),面向过程 threading,比上者更高级,面向对象这节学习Thread多线程,Thread是threading非常重要的一个类_thread()管理线程需要使用锁,创建锁、释放锁、获取锁等操作,是锁的使用比较麻烦,而在Thread当中,只需使用join()来管理,比较方便,使用start()创建。测试代...原创 2019-03-02 19:18:26 · 479 阅读 · 0 评论 -
Python基础——多线程值从Thread类继承
上一节介绍了封装Thread类的对象https://blog.csdn.net/qq_41895747/article/details/88080140这一次学习一种更常用的封装方法,从Thread派生一个子类,然后将线程有关代码放到此类中这种常规做法非常常见,先看代码:# ——创建时间:2019.3.2——# 多线程import threadingfrom time impo...原创 2019-03-02 22:03:25 · 622 阅读 · 0 评论 -
Python基础——线程锁
_thread中为了保证线程不堵塞的方法是创建线程锁,而在Thread中可以使用join来保证线程不阻塞,但是无法进行各个线程之间的信息共享,也无法解决多个线程同时操作某一数据造成脏数据的问题,所以还是用线程锁来解决。创建线程的思路非常清楚,和_thread类似创建Lock实例acquire获取权限release释放权限注意:锁的对象要放在线程函数的外面作为一个全局变量,这样所...原创 2019-03-02 22:39:25 · 363 阅读 · 0 评论 -
Python基础——多线程之信号量
信号量可以看成是线程锁的加强版信号量相当于一个计数器,和RTOS中任务向量表异曲同工,当资源消耗是递减,当资源释放是递增。也就是说acquire消耗资源减一,release释放资源加一。可以认为信号量代表着资源是否可用。使用信号量首先要创建BoundedSemaphore类的实例,并通过该类的方法传入信号量的最大值实例演示了信号对象的创建,获取资源与释放资源:# ——创建时间...原创 2019-03-03 08:47:37 · 762 阅读 · 0 评论 -
Python基础——SQLite数据库基本操作
SQLite数据库的官网:https://www.sqlite.org/index.html有很多管理数据库的工具,官方使用命令行进行管理,感觉太麻烦,使用DB Browser进行管理数据库,附上官网:https://sqlitebrowser.org/about/打开后还是中文的,惊喜安装库:pysqlite3在进行对数据库的操作之前,首先要使用函数connect打开数据库...原创 2019-03-03 11:16:20 · 377 阅读 · 0 评论 -
Python基础——MySQL数据库基本操作
上次介绍了轻型数据库sqlite,这次学习一下著名的关系型数据库MySQL的基础操作通过pip或者conda安装canda install pymysqlpip install --user pymysql记住常用的几种函数和方法,搞定绝大多数的数据库操作对象connec函数:连接数据库,根据所连接的数据库不同,该函数的参数也不同。connect函数返回的是Connec...原创 2019-03-03 15:29:38 · 293 阅读 · 0 评论 -
Python基础——面向对象
学习C语言入门,写了大概一年的嵌入式C,对面向对象对象一开始完全没有概念,现在写了半年多的Python,回首复习一遍Python中面向对象的概念:对象:对象包含若干个属性和方法 属性:可以理解为变量 方法:可以理解为全局函数。方法的第一个参数必须是对象本身,即self 类:类是对象的抽象,class,类实例化后称为对象 多态:将不同类的对象用同一接口访问,不需要管接口后面是哪个对象 ...原创 2019-03-03 16:15:21 · 298 阅读 · 2 评论 -
Python基础——构造方法和特殊成员方法
1. 构造方法:当类被实例化时,首先会调用构造方法,构造方法是特殊的方法,名为:__init__,这种用法还是非常好理解、非常常见的。2. 使用super函数。首先阐明超类的概念。父类想象成父辈,那么超类就是爷爷辈以上 super函数用于超类 子类要访问超类中的方法,需要使用super函数,该函数返回的对象代表超类对象,所以访问super函数返回对象中的资源都属于超类 super函数...原创 2019-03-03 22:11:35 · 430 阅读 · 0 评论 -
编程基础——python函数中计数参数的使用
转载一篇,想在函数中计数,总是忽略函数中形参和实参,必选参数,默认参数等用法,和C语言中有很多微妙的区别,终于弄懂。原文:https://blog.csdn.net/u011304970/article/details/72820836今天在写以下Python代码时出现了问题。该段代码根据一些URL下载视频:#coding=utf-8def save_case_infos(cas...转载 2019-07-25 22:49:14 · 676 阅读 · 0 评论 -
python基础——线程与进程
线程与进程的共同点:都可以让程序运行进程与线程的区别:进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率...原创 2019-03-02 17:08:52 · 212 阅读 · 0 评论