• Linux之进程间通信(共享内存【mmap实现+系统V】)

    目录 共享内存 mmap()及其相关的系统调用 mmap() munmap() 共享内存的使用 命令管理共享内存 总结 共享内存 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,两个不同的进程A.B共享内存的意思就是:同一块物理内存被映射到进程A.B各自的进程地址空间,进程A可以同时看到进程B对共享内存中数据的更新,反之亦然. 由于个多个进程共享同一块内存区域,必然需要某种同步机制.互斥锁和信号量都可以. 好处: 效率高,进程可以直接读写内存,而不需要复制任何数据,而管道.消息队列

    2023-03-22
  • Android开发之Kotlin委托的原理与使用详解

    目录 前言 一.接口/类委托 二.属性委托 三.延迟委托 四.观察者委托 五.Map委托 总结 前言 在设计模式中,委托模式(Delegate Pattern)与代理模式都是我们常用的设计模式(Proxy Pattern),两者非常的相似,又有细小的区分. 委托模式中,委托对象和被委托对象都是同一类型的对象,委托对象将任务委托给被委托对象来完成.委托模式可以用于实现事件监听器.回调函数等功能. 代理模式中,代理对象与被代理对象是两种不同的对象,代理对象代表被代理对象的功能,代理对象可以控制客户对

    2023-03-22
  • 关于JAVA中stream流的基础处理(获取对象字段和对象批量处理等)

    目录 Stream流程处理情况 1:按指定字段获取集合对象中的字段: 2:按指定字段对集合对象进行排序: 3: 按指定字段对集合对象去重处理 4: 对集合对象批量处理 5: 将集合对象中指定字段转数组 Stream流程处理情况 1:按指定字段获取集合对象中的字段: List<String> idList = initUserList.stream().map(User::getId).collect(Collectors.toList()); 2:按指定字段对集合对象进行排序: List<

    2023-03-22
  • SpringBoot Mybatis 配置文件形式详解

    目录 1. 概述 2. 单独配置mybatis-config.xml 2.1 配置内容 2.2 辅助类 2.3 调用操作 3. application.yml配置mybatis 3.1 配置内容 3.2 辅助类 3.3 调用操作 4. 结语 开发环境: IDEA 2022.1.4+ Mybatis 1. 概述 在之前BiliBili学习SprintBoot时候,按照视频敲代码,SpringBoot集成MyBatis,是单独写了一个mybatis-config.xml文件.配置数据连接以及mapp

    2023-03-22
  • windows安装MySQL到D盘的超详细步骤

    目录 步骤 1.下载MySQL 2.在非c盘创建文件夹 3.双击刚刚下载的内容 重点来了!如何转到别的盘的重点! 端口号没必要变,如果你变了,请记住! 重要!设置自己的账户和密码.我这里账户和密码使用的都是‘root’ 配置MySQL的环境变量 总结 步骤 1.下载MySQL 首先,打开 MySQL 官网,找到 Community 版的下载.选择 Community 是因为该版本免费而且是一般使用的版本. MySQL 下载处的最终网址:MySQL :: Download MySQL Instal

    2023-03-22
  • Qt音视频开发之利用ffmpeg实现解码本地摄像头

    目录 一.前言 二.效果图 三.体验地址 四.相关代码 五.功能特点 5.1 基础功能 5.2 特色功能 5.3 视频控件 一.前言 一开始用ffmpeg做的是视频流的解析,后面增加了本地视频文件的支持,到后面发现ffmpeg也是支持本地摄像头设备的,只要是原则上打通的比如win系统上相机程序.linux上茄子程序可以正常打开就表示打通,整个解码显示过程完全一样,就是打开的时候要传入设备信息,而且参数那边可以指定分辨率和帧率等,本地摄像机一般会支持多个分辨率,用户需要哪种分辨率都可以指定该分辨率

    2023-03-22
  • Bean的自动注入及循环依赖问题

    目录 一.spring中的各种注入方式 一.spring中的各种注入方式 对于是spring的注入前置知识.@Autowired.@Resource等的知识可以看其他文章,这里就不多说了 我们对Bean的注入,一般有下面几种方式: 1).通过@Autowired.@Resource作用在属性上 2).通过@Autowired.@Resource作用在方法上 3).通过提供set方法+改变注入模型为自动注入 4).通过BeanDefinition方式完成属性注入 我们先说前三种方式: 我们用下面的

    2023-03-22
  • 在Linux服务器下启动tomcat的三种方式

    目录 第一种(当前会话启动): 第二种(带日志的当前会话启动): 第三种(后台永久启动): 1.最简单的写法: 2.手动指定tomcat启动时的日志路径: 直接进入主题,首先cd进入tomcat的bin文件夹下,然后可以尝试以下三种启动方式: 第一种(当前会话启动): ./startup.sh 效果: 然后tomcat就在后台启动了,我们还可以在当前会话中继续输入其它指令,比如 ps -ef | grep 'tomcat' 来查看我们刚才启动的tomcat服务: 可以看到它的进程id是6951,

    2023-03-22
  • 关于JavaEE匿名内部类和Lambda表达式的注意事项

    目录 前言 一.匿名内部类 注意事项: 二.Lambda表达式 1.背景 2.函数式接口 3.Lambda表达式的语法 4.Lambda表达式的基本使用 (1)无返回值无参数 (2)无返回值有参数 (3)有返回值无参数 (4)有返回值有参数 总结 前言 上一篇介绍了内部类的前三种类型,链接如下: 关于JavaEE内部类的部分注意事项 接下来将详细介绍匿名内部类以及Lambda表达式的用法和注意事项. 一.匿名内部类 定义在方法中(方法的形参或者实参),没有任何权限修饰符,甚至连类名称都没有的内部

    2023-03-22
  • MySQL创建数据库和创建数据表

    目录 MySQL 创建数据库和创建数据表 一.数据库操作语言 二.创建数据库 三.创建数据表 四.MySQL 常用字段类型 MySQL 创建数据库和创建数据表 MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD. 在这之前,需要先安装好 MySQL ,然后创建好数据库.数据表.操作用户. 一.数据库操作语言 数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是 SQL(Structured Query Language) 结构化查询语言. SQL 的主要

    2023-03-22
  • 基于Python实现视频去重小工具

    同级目录下新建dup_video import json import os import shutil import cv2 import imagehash from PIL import Image from loguru import logger from PySimpleGUI import popup_get_folder class VideoDuplicate(object): ''' 返回整个视频的图片指纹列表 从1秒开始,每3秒抽帧,计算一张图像指纹 ''' def __i

    2023-03-22
  • 浅谈Redis阻塞的9种情况

    目录 命令阻塞 SAVE 阻塞 同步持久化 AOF 重写 AOF 日志 大 Key 问题 查找大 key 删除大 key 清空数据库 集群扩容 前两天去美团面试的陈同学回来了,看他满脸泄气的样子,准是没拿到 Offer. 听了他面试的经过,真替他感到惋惜.究其原因,是被一道面试题拦住了去路:看你简历上写着精通 Redis,请你总结一下 Redis 中存在的阻塞问题吧. 正好阿Q这几天正在研究 Redis,就顺便在这儿给大家做个总结. 命令阻塞 使用不当的命令造成客户端阻塞: keys * :获取

    2023-03-22
  • 如何用Python进行回归分析与相关分析

    目录 一.前言 1.1 回归分析 1.2 相关分析 二.代码的编写 2.1 前期准备 2.2 编写代码 2.2.1 相关分析 2.2.2 一元线性回归分析 2.2.3 多元线性回归分析 2.2.4 广义线性回归分析 2.2.5 logistic回归分析 三.代码集合 一.前言 1.1 回归分析 是用于研究分析某一变量受其他变量影响的分析方法,其基本思想是以被影响变量为因变量,以影响变量为自变量,研究因变量与自变量之间的因果关系. 1.2 相关分析 不考虑变量之间的因果关系而只研究变量之间的相关关

    2023-03-22
  • Linux操作文件的底层系统调用,探究父子进程是否可以共享文件问题

    目录 open()——打开或者创建一个文件 write() read() close() lseek函数 应用:利用读写对文件进行复制 打开文件后,fork的子进程能否共享和父进程共享访问同一个文件? 总结 linux操作系统奉行一切皆文件的理念,所有文件设备几乎都可以用一套系统调用即open()/close()/write()/read()等来操作.系统调用和C库调用操作文件类似.Linux自带的man手册是最权威的.通过查看man手册来查看系统调用用法. 代号 —— 代表的含义 1 —— 用

    2023-03-22
  • ChatGPT Notion AI 从注册到体验及免费使用过程

    目录 1. Notion AI 介绍 1.1 Notion AI 简介 1.2 Notion AI 的核心能力 1.3 Notion AI 与 ChatGPT 的比较 2. Notion AI 国内用户注册 2.1 PC 端用户注册 2.2 移动端用户注册 3. Notion AI 快速体验 3.1 Notion AI 的基本功能 3.2 体验 Notion AI 写作 3.3 写作中调用 AI 的方法 4. AI 面板的功能与使用 4.1 AI 面板的功能 4.2 AI 面板选项 4.3 内容

    2023-03-22
  • vue3中getCurrentInstance示例讲解

    目录 父组件中: main.js 方式一.通过 getCurrentInstance 方法获取当前组件实例,从而获取 route 和 router 方式二:通过从路由中导入 useRoute useRouter 使用 route 和 router. 附:Vue3中关于getCurrentInstance的大坑 总结 父组件中: 1.setup语法糖中导入子组件 2.在子组件标签上绑定ref值 3.setup内部从vue中按需导出 getCurrentInstance 方法 4.调用getCurr

    2023-03-22
  • 如何在Python中导入EXCEL数据

    目录 一.前期准备 二.编写代码基本思路 三.编写代码读取数据 3.1 3.2 四.结语 一.前期准备 此篇使用两种导入excel数据的方式,形式上有差别,但两者的根本方法实际上是一样的. 首先需要安装两个模块,一个是pandas,另一个是xlrd. 在顶部菜单栏中点击文件,再点击设置,然后在设置中找到以下界面,并点击“+”号. 然后会出现以下界面,在搜索框中分别搜索以上两个模块:pandas/xlrd. 选中搜索出来的模块,并点击左下角的的安装按钮,便可将模块安装到自己电脑中. 需要注意的是,

    2023-03-21
  • Android startActivityForResult的调用与封装详解

    目录 前言 一.原生的使用 二.对原生的封装Ghost 三.Result Api 的使用 四.Result Api 的封装 4.1 封装简化创建方式 4.2 自动注册/按需注册 总结 前言 startActivityForResult 可以说是我们常用的一种操作了,用于启动新页面并拿到这个页面返回的数据,是两个 Activity 交互的基本操作. 虽然可以通过接口,消息总线,单例池,ViewModel 等多种方法来间接的实现这样一个功能,但是 startActivityForResult 还是使

    2023-03-21
  • Qt音视频开发之实现ffmpeg视频旋转显示

    目录 一.前言 二.效果图 三.体验地址 四.相关代码 五.功能特点 5.1 基础功能 5.2 特色功能 5.3 视频控件 一.前言 用手机或者平板拍摄的视频文件,很可能是旋转的,比如分辨率是1280x720,确是垂直的,相当于分辨率变成了720x1280,如果不做旋转处理的话,那脑袋必须歪着看才行,这样看起来太难受,所以一定要想办法解析到视频的旋转角度,然后根据这个角度重新绘制.在窗体那边也需要调整对应的分辨率,一般都是宽度高度互换.其实早期的很多播放器比如vlc2版本的播放器也是不支持旋转的

    2023-03-21
  • Python可视化最频繁使用的10大工具总结

    目录 Matplotlib Seaborn Plotly Bokeh Altair ggplot Holoviews Plotnine Wordcloud Networkx 总结 今天介绍Python当中十大可视化工具,每一个都独具特色,惊艳一方. Matplotlib Matplotlib 是 Python 的一个绘图库,可以绘制出高质量的折线图.散点图.柱状图.条形图等等.它也是许多其他可视化库的基础. import matplotlib.pyplot as plt import numpy

    2023-03-21