- 博客(44)
- 收藏
- 关注
原创 C++实现一个线程池
线程池是提高CPU利用率的一个非常高效的方法,线程池就是通过预先创建多个线程,当有任务时就执行,无任务时就阻塞.相比一般的多线程方法,线程池更加简单,模块化,并且效率更高,因为不会重复创建删除线程.
2024-10-17 21:09:00
257
原创 C++11标准 智能指针
智能指针能够自动管理内存,主要是为了更好的维护对象内存分配和回收的. 最大的作用就是防止内存泄露.发生内存泄漏最主要的原因就是程序中存在异常,并且程序没有堆内存实现异常处理.
2024-10-17 21:07:52
285
原创 C++11标准 条件变量condition variable
condition variable是c++11标准中用于线程协调同步的对象.主要包括wait和notify两个操作.wait判断条件决定是否阻塞,notify则负责唤醒阻塞的线程.条件变量因为是进程间共享的,因此需要互斥访问more。
2024-10-17 21:07:20
339
原创 c++11标准 decltype,result_of和后置返回类型
c++11提供了decltype和result_of两种类型推导方法.decltype用于表达式类型推导result_of用于函数或可调用对象,例如function,函数指针more。
2024-10-17 21:06:46
438
原创 C++11标准 future异步线程库
c++标准有很多的版本,比较知名的如c++98是第一版c++标准,提供了c++最底层的支持. 后面的c++11和c++20每个版本都会给c++带来新特性.而线程就是是c++11最重要的特性.虽然c++98有pthread库,但是c++11的thread有更好的跨平台能力,最重要的是c++11很多线程特性都是在thread库基础上实现的.例如本节的异步线程future库,以及其他的如信号量,智能指针,functional函数封装,万能模板,完美转发等等.这些特性为c++提供了原生线程支持.
2024-10-17 21:06:00
1264
原创 C++ IO多路复用 select模型
网络通信本质是IO操作.了解网络通信先了解IO进程的IO主要分为阻塞IO和非阻塞IO,对IO请求的响应分为同步(进程等待IO响应)和异步(进程不等待)常见的阻塞IO包括操作系统提供的系统调用如读,写. 非阻塞包括多路IO复用等模型阻塞IO:进程在IO操作时需要挂起等待非阻塞IO:进程IO操作时立即返回IO复用:利用操作系统实现对一组IO通信管理。
2024-10-17 21:02:50
1005
原创 Win10 QT 配置Android开发环境-jdk/sdk/gradle
QT开发android是可行的,QT拥有非常强的跨平台能力,能使用C++开发几乎全平台的应用,但是环境配置坑挺多的.本次提供了QT6安装配置环境到完成app打包运行的整个过程,但是注意时效,因为qt的版本一直在变
2024-09-27 21:54:11
1010
原创 C++ Linux IPC进程通信-消息队列MQ
相比于共享内存和管道,消息队列能够实现指定的消息格式和排序,能实现更复杂的通信。MQ的复杂度较高,维护成本增加.如果MQ挂了,主服务直接挂了.
2024-09-22 22:22:12
341
原创 C++ Linux多进程Socket通信
IP:PORT 以IPV4为例 每个数字1字节0-255,4个字段需要32位为无符号int,端口0-65535 16位2字节,都按照网络字节序存放.由于计算机本身字节序和网络字节序不一定一致,需要进行处理转换,都是大端不需要转,而小端字节序需要和网络字节序相互转换.可以由此说明服务器和客户端得到的两个描述符fd是两个不同的描述符,类似于两个双向管道,设置其中一个不影响另外一个.msg.msg_iov = iov;客户端与服务器连接,仅服务器设置非阻塞模式,客户端等两秒发消息,服务器会轮询等待,不阻塞.
2024-09-22 22:21:34
1213
原创 C++ Linux多线程同步通信-信号量
原文链接:C++ Linux多线程同步通信-信号量C++多线程能够提升程序的资源利用率,提升效率.涉及到的库有:thread,mutex,chrono,semaphore几种构造形式空线程函数线程类函数线程移动复制线程线程传参对于一般数据可以直接传入,但是引用数据需要深拷贝传参.当主线程引用数据改变时,其他线程使用ref深拷贝的同步改变.但是其他线程改变数据不影响主线程的对象(?)线程同步与通信同步互斥锁 互斥锁能够实现简单的互斥操作,保证临界区互斥访问,实现方式有3种:
2024-09-17 18:39:30
560
原创 linux配置远程ssh服务
sudo vim /etc/ssh/sshd_config在末尾添加。创建一个authorized_keys,如果需要配置免密连接。Port ID 设置开放指定端口,如Port 22(默认)然后重启sudo service sshd restart。ssh配置文件在/etc/ssh/sshd_config。sudo poweroff reboot 远程关机 重启。在~/.ssh目录下有id_rsa.pub为公钥。可以把远程连接的电脑的公钥放在这个文件。服务器生成密钥,直接回车3次。使用ssh命令即可连接。
2024-09-14 19:14:41
544
原创 git github仓库管理
github的仓库有两种下载方式,http和ssh,http是对外公开的,可以直接clone,ssh的一般是自己的或内部的仓库,仓库需要配置ssh-key才能使用git@ clone.ssh-keygen rsa -t 生成key 在~/.ssh/目录看到id_rsa.pub是ssh公钥 ,在github/settings的ssh创建一个新ssh key粘贴。release和feature从develop分出的,是新开发的,完成后需要合并到main和develop,然后删除。git需要配置用户的一些参数。
2024-09-14 19:13:31
884
原创 GLM3源码学习
transformer的重复问题我遇到了好几次,可以通过惩罚参数控制上下文实现方法-实际上还是把历史对话融在一起模型推理资源占用问题,请求队列感觉是一定要有的,web框架本身是异步请求响应的,不对临界资源管理感觉没啥可靠性加上这个,目前已经把带上下文的文本生成+知识库扩展永久记忆解决了,后面再对模型结构魔改下,然后集成一些动作指令,就可以实现本地部署家用AI了hhh。
2024-07-13 23:21:34
770
原创 操作系统引导全过程-详细
硬盘结构:硬盘内部有MBR(Master Boot Record主引导记录)、以及多个分区,每个主分区也有自己的PBR(分区引导记录)。硬盘扇区默认大小512B,空间分配一般按簇分配(多个扇区为一组簇)。BIOS工作在实模式下,最大20位寻址,也就是1M寻址范围(0x00000 ~ 0xFFFFF)(最初的8086处理器能够访问的内存最大只有1MB,保证兼容性)MBR大小512B,位于0柱面、0磁头、1扇区,包括:主引导程序(446B)、硬盘分区表DPT(64B)、MBR结束标志AA55(2B)
2024-07-03 23:13:09
1087
原创 conda安装管理配置
torch的安装到官网查看,不建议直接安装,包括其他的框架,直接导入会与当前系统不匹配。environment.yaml示例。
2024-06-26 21:03:49
338
原创 linux下cuda安装-ubuntu22.04安装cuda11.8(cuda+cudnn)
cuda是nvidia提供在N卡上实现并行计算的工具包,cudnn是cuda的运行时库,通过cuda提供的内核函数能够高效的在N卡上跑密集计算程序。本文在N卡机器上安装好了相应的驱动后,提供安装cuda和cudnn的详细步骤,并运行官方示例程序验证。
2024-06-19 20:22:36
3330
原创 linux下nvidia驱动安装-ubuntu22.04安装2060-notebook驱动
nvidia驱动是显卡稳定运行的重要保证,不同的显卡有不同驱动,不同驱动对操作系统/cuda支持都存在一定差别。本次驱动安装主要完成2060-notebook显卡在linux系统下的驱动安装
2024-06-14 21:50:54
673
原创 linux下gcc编译安装与卸载-ubuntu22.04安装gcc-12.3.0
很多软件和驱动安装对gcc都存在一定要求,使用默认安装一般无法安装对应版本的gcc,本文中我们会实现通过编译安装指定的gcc和g++,为安装nvidia驱动提供编译支持。
2024-06-14 21:49:13
4283
1
原创 如何配置DNS解析和开放端口[阿里云服务器]
A:如果我们设置三级域名时,如blog可以添加一个A标签,这样可以将blog.example.com域名解析到我们对应IP的服务器。CNAME:指向另一个域名 在github page时可以通过我们的域名访问我们的github.io的博客。端口是传输层端到端通信的一个标识,我们需要开放端口才能通过指定端口访问服务。常见的应用端口如下。TXT:文本记录,一般作为网站所有者的验证,通过设置TXT值为指定文本。DNS解析有多种,阿里云配置也有解说,主要给出几种应用场景。该部分较为简单,可直接配置。
2023-08-25 17:34:04
910
原创 Nginx代理多个域名服务配置参考[Django][Nginx][Uwsgi][资源服务器]
nginx实现静态资源服务器配置。nginx.conf 基础配置。
2023-08-25 17:31:30
292
原创 nginx安装[手动安装][配置][宝塔面板安装]
实际上nginx的配置只有一个nginx.conf文件,但可以让nginx加载指定目录下的文件作为扩展配置,这部分在nginx配置中实现。一般nginx安装的配置文件在/etc/nginx,如果找不到使用nginx -h会显示默认安装地址。每新建一个网站都会增加一个配置,点击新建网站的设置文件就可以配置了,点击保存会自动检测并加载。安装完后会自动启动,检测nginx状态,会显示配置地址和日志地址。在浏览器打开登录,点击网站,会显示要先安装nginx,直接安装。我们找到宝塔的安装和卸载命令。
2023-08-25 17:29:14
3343
原创 使用Nginx实现多个网站代理[多端口监听][django][资源服务器]
我们在nginx配置目录下新建一个配置我们多个网站服务的目录。在宝塔面板中为vhost/nginx。路径是根据自己自定义的目录配置。
2023-08-25 17:25:18
1300
原创 linux服务器环境配置[镜像换源][官方源][指定LTS版本][环境变量]
镜像源并不一定与初始源相同,而且对于不同发行版本也应该使用对应源,不同源会导致软件不适配问题。用户变量一般在用户路径下~/.bashrc,与系统环境变量配置相同。保存后使用 source /etc/profile 生效。apt源在路径/etc/apt/sources.list。官方pip源,有些源在未发布时只存在test源中。修改主机名称,需要与hosts中的配置保持一致。配置ip与主机名的配置,分布式系统需要配置。如果出现问题可以切换源或者换回官方源。然后将需要的源输入保存后执行。
2023-08-25 14:30:13
923
原创 [最新安全稳定,自带haddop生态]Hadoop伪分布式ubuntu虚拟镜像
优势:1.集成的hadoop环境搭配最新ubuntu版本,导入十几秒就能直接上手开发2.安装的版本都是兼容性强的稳定版本,能够适应各类项目开发3.自带完整的开发环境与开发案例,新手可以直接模仿学习项目4.保证测试项目环境能够正确运行
2023-02-07 11:40:40
959
2
原创 python模块:Scipy.optimize.minimize规划问题求解
多元标量函数的最小化,是数学规划模型中更为一般的模型,该模块包括有限制性约束和无限制性约束的最小化,而对于限制性约束又分为线性约束和非线性约束。这种更为一般的模型需要针对具体的问题假设选择特定的方法进行求解。在数学规划模型中,minimize提供的方法能够解决无/有(线性、非线性)约束的多个决策变量目标函数的最优化问题,但是由于该模块是依据函数导数与梯度进行求解,不能够求解整数规划、01规划等问题。
2022-08-19 13:53:50
30516
1
原创 python模块:Scipy.optimize.linprog线性规划求解
Scipy.optimize是Scipy中一个用于解决数学模型中优化类模型的子包,该子包中又包含了多个子功能模块见下表,不同方法不同条件求解最优化模型。本节介绍linprog对线性规划问题的模型建立与求解。.........
2022-08-15 22:38:48
17558
2
原创 opencv:VS无法导入源文件(环境配置不全解决100%有效)
一个下午看了很多博客,大部分的博客在系统环境变量配置时,都是一样的,将opencv的bin目录添加。但是VS的环境配置由于不同人有不同版本VS,配置五花八门,而且很多都没用。按照以下步骤不需要考虑太多,直接理解VS的环境配置先搞懂以下几点: 1.vs环境分debug和release版本,调试和发行版,开发人员和测试人员使用的版本 2.opencv中x64下的vc14,15分别兼容不同vs版本,版本2017以上的选v15,以下选v14 3.vc14...
2021-12-06 17:00:11
1293
1
原创 opencv报错——找不到opencv_worldXXX.dll文件
如标题,我们按照教程配置opencv的环境变量,其中SysWOW与system32分别配置了2/1个文件。但是按照上述环境变量配置后vs能导入cv的文件,却找不到上面中在SysWOW中配置的文件:opencv_worldXXX.dll 和opencv_worldXXXd.dll解决:我们将opencv文件夹中复制给SysWOW的两个文件也复制到System32中。再次运行程序:此时程序能够执行:...
2021-11-20 13:08:24
10313
1
《机器学习工程师-机器学习技术路线图》
2023-02-06
《深度学习-NLP自然语言处理知识图谱》
2023-02-06
《人工智能-机器学习技术栈思维图》
2023-02-06
《互联网技术-系统开发学习技术路线图》
2023-02-06
《互联网技术-后端学习技术路线图》
2023-02-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人