自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(884)
  • 收藏
  • 关注

转载 springboot中的任务处理

spring boot java

2022-07-12 10:42:01 314

转载 C#WPF数据绑定模板化操作四步走

前言:WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用法:具体实例代码如下:以下代码仅供参考,如有问题请在评论区留言,谢谢复制代码1 第一步:声明一个类用来实现接口 INotifyPropertyChanged,并在界面的后台代码中实例化vm对象23 public class NotifyPropertyObject : INotifyPropertyChanged4 {5 public event PropertyChanged

2022-01-05 11:03:36 898

转载 Unity——基于ShaderLab实现光照系统

一、着色器1.顶点片元着色器分顶点着色器和片元着色器,对应渲染管线的顶点变换和片元着色阶段;最简单的顶点片元着色器:Shader “MyShader/VertexFragmentShader”{Properties{_MainColor(“MainColor”,Color) = (1,1,1,1)} SubShader{ Tags { "RenderType" = "Opaque" } Pass { CGPROGRAM #p

2022-01-05 11:01:08 415

转载 css--深入由z-index引发的层叠上下文、层叠等级和层叠顺序的思考

代码段1如下:我们只需要改变box盒子的z-index值的大小就会改变盒子的层叠顺序。复制代码 box1 box2 box3 复制代码  初次看上面的代码,会发现 z-index 值越大在z轴上就越靠上,离浏览器屏幕越近。但是仔细思考,你会发现这里存在很多疑惑:z-index是在任何元素上面都有效果吗?难道z-index的值的大小直接影响到元素的层叠顺序吗?我们再来看下下面的代码段2:复制代码 1 2

2021-12-30 15:35:17 288

转载 线程通信举个简单的例子

对上次多线程编程步骤补充(中部):创建资源类,在资源类中创建属性和操作方法在资源类里面操作判断干活通知创建多个线程,调用资源类的操作方法线程通信的实现例子:两个线程,实现对一个初始变量为0进行操作,一个线程对其+1,一个线程对其-1,使得变量结果不改变使用Synchronized实现的线程通信:package com.JUC;/**创建资源类*/class Share{//初始值private int number = 0;//创建方法public synchroni

2021-12-30 14:52:44 199

转载 13 个 C# 10 特性

常量的内插字符串C# 10 允许使用在常量字符串初始化中使用插值, 如下const string name = “Oleg”;const string greeting = $“Hello, {name}.”;Console.WriteLine(greeting);// Output: Hello, Oleg.扩展属性模式从 C# 10 开始,您可以在适当的模式中引用嵌套的属性或字段, 属性模式变得更具可读性并且需要更少的大括号。Person person = new(){Name =

2021-12-30 14:31:54 129

转载 Solon 1.6.11 发布。类似 Spring 的生态体系

Solon 是一个轻量级应用开发框架。支持 Web、Data、Job、Remoting、Cloud 等任何开发场景。短小而精悍!强调,克制 + 简洁 + 开放的原则力求,更小、更快、更自由的体验目前已有近130个生态插件,含盖了日常开发的各种需求。关于 Solon CloudSolon Cloud 定义了一系列分布式开发的接口标准和配置规范,相当于DDD模式里的防腐层概念。是 Solon 的微服务架构模式开发解决方案。关于本次更新增加 ModelAndView 注入支持@Controller

2021-12-30 14:30:37 160

转载 .NET+Sqlite如何支持加密

.NET+Sqlite如何支持加密相关文章FreeSql.Provider.SqliteCore如何加密SqliteSQLite 来源于公共领域 SQLite Is Public Domain、确保代码不会受到任何专有或许可内容的污染,没有任何来自互联网上的未知来源复制。即全是原创的。虽然是免费的,无需许可证,可用于任何目的,但如果你的公司必须要一个许可证,你也能申请授权https://sqlite.org/purchase/license.但不支持加密。如果想支持登录加密,需要另外的扩展SQ

2021-12-30 10:41:22 277

转载 第48篇-native方法调用解释执行的Java方法

举一个native方法调用解释执行的Java方法的实例,如下:public class TestJNI {static {System.load("/media/mazhi/sourcecode/workspace/projectjava/projectjava01/src/main/java/libdiaoyong.so");}public static int getResult() { return 2;}public static native int get();pub

2021-12-30 10:38:10 387

转载 源码解析C#中PriorityQueue(优先级队列)的实现

构造初始化关于这部分主要介绍关键的字段和方法,比较器的初始化以及堆的初始化,请看如下代码:复制代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

2021-12-30 10:37:03 609

转载 vue create 初步解析以及定制化修改

版本说明$ vue --version@vue/cli 4.5.9$ node --versionv14.0.0$ npm --version7.6.1源码位置-mac/usr/local/lib/node_modules/@vue/cli流程说明根据package.json中的bin可以知道入口文件在bin/vue.jsvue.js中找到create 的命令设定,在action钩子中调用了lib/createcreate.js获取项目绝对路径判断项目文件夹是否存在创建文件夹

2021-12-29 14:58:29 761

转载 简单的 for 循环也会踩的坑

最近实现某个业务时,需要读取数据然后再异步处理;在 Go 中实现起来自然就比较简单,伪代码如下:list := []*Demo{{"a"}, {"b"}}for _, v := range list { go func() { fmt.Println("name="+v.Name) }()}type Demo struct { Name string}看似非常简单几行代码却和我们的预期不符,打印之后输出的是:name=bname=b并不是我们预期的:name=aname=

2021-12-29 11:03:31 239

转载 版本不兼容Jar包冲突该如何是好?

三、maven-shade-plugin解决依赖冲突最后如何来配置和使用maven-shade-plugin将Guava映射成我们自己定制的Jar包,实现与中间件Guava的隔离。整个的过程还是比较清晰明了的,主要是创建一个Maven工程,引入依赖,配置我们要发布的仓库地址,引入编译打包插件和maven-shade-plugin插件,配置映射规则(标签之间部分),然后编译打包发布到Maven仓库。pom.xml的配置如下:<?xml version="1.0" encoding="UTF-8"?&

2021-12-29 10:58:42 182

转载 二、字符流

1、FileReader(输入)  用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在FileInputStream上构造一个InputStream。  read():一次读一个字符,指针会指向下一个字符。读到末尾返回-1。  代码示例:读文件复制代码1 // 文件:F:\hello.txt2 // 内容:helloworld123中国人13 public class Main {4 public static void

2021-12-29 10:19:01 136

转载 COAP协议 - arduino ESP32 M2M(端对端)通讯与代码详解

初始化部分这部分包括了设备初始化,协议初始化等部分,重点在服务器/客户端的回调函数部分。和 SDDC 官方demo类似,在这注册回调函数之后,通过对应的端点找到对应的回调函数。#include <WiFi.h>#include <WiFiUdp.h>#include <coap-simple.h>void setup() {Serial.begin(115200);WiFi.begin(ssid, password);while (WiFi.status(

2021-12-09 10:43:25 380

转载 day13 cookie与session和中间件

cookie与session简介http协议四大特性1.基于请求响应2.基于TCP\IP作用于应用层之上3.无状态基于http协议通信的服务端无法保存客户端状态纵使见她千百遍 我都当她如初见4.无(短)连接随着互联网的发展 很多网站都需要保存客户端状态 为了实现该需求cookie与session应运而生(最初的功能核心:保存用户状态)cookie:服务端让客户端浏览器保存的数据(kv键值对)session:服务端保存的关于用户相关的数据(kv键值对)'''session的工作需要依

2021-12-09 10:41:40 100

转载 c++ cmake及包管理工具conan简单入门

这是一个入门教程,想深入了解的我在后面放了几个链接可以去学习1 cmake1.1 下载cmake1.2 cmake的主要命令cmake -B [target][target] 表示我们希望cmake生成文件存放的目录,一般命名为build, 我们也可以进入到build文件夹下使用cmake … 将cmake生成的文件存放到当前目录这个命令作用是自动帮我们生成makefile文件注意事项:build 文件的上一级目录中要有CMakeLists.txt文件,即cmake的描述文件cmake --

2021-12-09 10:40:08 2579

转载 使用Redis实现令牌桶算法

Redis实现令牌桶算法之前看过有些程序实现的令牌桶,其向桶中放入令牌的方法是启动一个线程,每隔Y单位时间增加一次令牌数量,或者在Timer中定时执行这一过程。我不太满意这种方法, 原因有二,一是浪费线程资源,二是因为调度的问题执行时间不精确。这里确定令牌桶中令牌数量的方法是通过计算得出,首先算出从上次请求到这次请求经过了多长时间,是否达到发令牌的时间阈值,然后增加的令牌数是多少,这些令牌能够放到桶中的是多少。Talk is cheap!下边就来看看Redis中怎么实现的,因为涉及到多次与Redis

2021-12-08 14:37:09 1339

转载 如何在 ASP.NET Core 中构建轻量级服务

使用 VS2022 创建 ASP.NET Core 项目我们在 Visual Studio 2022 中创建一个 ASP.NET Core 项目。按照以下步骤在 Visual Studio 2022 中创建一个新的 ASP.NET Core Web API 6 项目。启动 Visual Studio 2022 IDE。单击 “Create new project”。在 “Create new project” 窗口中,从显示的模板列表中选择 “ASP.NET Core Web API”。点击.

2021-12-08 14:35:12 231

转载 Swift-技巧(十一)重写运算符

摘要基础数据的运算可以直接使用四则运算符。在 Swift 中也可以通过重写四则运算符的方式,让 struct 或者 class 创建的结构体或者对象也能像基础数据那样直接使用四则运算符。Swift 中有经常用到加、减、乘、除的操作,在代码中编写这些操作,实现功能中需要的基础计算。比如下面代码中实现的加法操作。let a = 1let b = 2let c = a + b// c = 3当遇到 struct 或者 class 中的变量做计算操作时,一般都是把属性依次拿出来计算,比如两个 CGPo

2021-12-08 11:00:48 132

转载 8.深入TiDB:解析Hash Join实现原理

所谓 Hash Join 就是在 join 的时候选择一张表作为 buildSide 表来构造哈希表,另外一张表作为 probeSide 表;然后对 probeSide 表的每一行数据都去这个哈希表中查找是否有匹配的数据。根据上面的定义,看起来 Hash Join 貌似很好做,只需要弄一个大 map 然后遍历 probeSide 表的数据进行匹配就好了。但是作为一个高效的数据库, TiDB 会在这个过程做什么优化呢?所以在阅读文章前先带着这几个疑问:哪张表会成为 buildSide 表或 probeS

2021-12-07 16:09:34 246

转载 WebRTC视频分辨率设置

html#在页面上摆放一些元素,下面是主要部分<div id="buttons"> <button id="stop">停止</button> <button id="b320">320x240</button> <button id="b240-320">240x320</button> <button id="b640">640x480</button&gt

2021-12-07 15:36:39 2914

转载 Elasticsearch中关于transform的一个问题分析

背景:现在有一个业务,派件业务,业务员今天去派件(扫描产生一条派件记录),派件可能会有重复派件的情况,第二天再派送(记录被更新,以最新的派件操作为准)。现在需要分业务员按天统计每天的派件数量。es版本:7.15.11、创建索引:复制代码PUT t_test_001{“settings”: {“number_of_shards”: 1,“number_of_replicas”: 1},“mappings”: {“properties”: {“city_id”: {“type”: “l

2021-12-07 15:35:15 271

转载 ReentrantReadWriteLock是一个可重入读写锁

ReentrantReadWriteLock是一个可重入读写锁,内部提供了读锁和写锁的单独实现。其中读锁用于只读操作,可被多个线程共享;写锁用于写操作,只能互斥访问ReentrantReadWriteLock尤其适合读多写少的应用场景读多写少:在一些业务场景中,大部分只是读数据,写数据很少,如果这种场景下依然使用独占锁(如synchronized),会大大降低性能。因为独占锁会使得本该并行执行的读操作,变成了串行执行ReentrantReadWriteLock实现了ReadWriteLock接口,该

2021-12-07 15:33:46 341

转载 容器中的容器——利用Dind实现开箱即用的K3s

代码的结构如下:.├── Dockerfile # 构建 dind-k3s├── README.en.md├── README.md├── docker-entrypoint.sh # 容器启动脚本└── utils├── daemon.json # dockerd 配置文件├── dind.conf # dockerd k3s 的进程管理配置文件├── k3s-conf.yaml # k3s 配置文件└──

2021-12-07 15:31:57 227

转载 .NET Core如何配置TLS Cipher(套件)?

前不久我发表了一篇关于TLS协议配置被我钻了空子,经过第三方合作伙伴验证,针对此TLS协议存在不安全套件,急催速速解决,那么我们本篇开始继续整活!第三方合作伙伴对平台安全严苛要求,我们已连续发版十几次进行处理,在此过程中使得我对安全有了进一步认识,具体认识则是在技术解决方案和密码学盲点两方面。下面我们来了解两个方面,可能没有完全深入,至少对作为开发者的我们而言,应已基本足够.NET Core Cipher(套件)配置如果没有项目上的苛刻要求,我断然也就无法在此方面展开研究和实践。本文具以.NET 5为例

2021-12-06 10:22:01 409

转载 .NET SAAS 架构与设计 -SqlSugar ORM

1、数据库设计常用的Saas分库分为2种类型的库1.1 基础信息库主要存组织架构 、权限、字典、用户等 公共信息性能优化:因为基础信息库是共享的,所以我们可以使用 读写分离,或者二级缓存来进行性能上的优化2.2 业务库我们要进行的分库都基于业务库进行分库,例如 A集团使用 A01库 ,B集团使用B01库 ,也可以多个小集团使用一个 数据库如下:业务库1 :集团A业务库2 : 集团B, 集团F业务库3 : 集团C, 集团D, 集团E性能优先:因为合理的进行了分库,所以

2021-12-06 10:10:34 913

转载 Bounds Check Elimination

边界检查,英文名 Bounds Check Elimination,简称为 BCE。它是 Go 语言中防止数组、切片越界而导致内存不安全的检查手段。如果检查下标已经越界了,就会产生 Panic。边界检查使得我们的代码能够安全地运行,但是另一方面,也使得我们的代码运行效率略微降低。比如下面这段代码,会进行三次的边界检查package mainfunc f(s []int) {_ = s[0] // 检查第一次_ = s[1] // 检查第二次_ = s[2] // 检查第三次}func

2021-12-06 09:50:29 196

转载 WebRTC本地分享屏幕,录制屏幕

WebRTC有分享屏幕的功能。使用的是getDisplayMedia方法。用户同意分享屏幕后,可以拿到视频流。再结合MediaRecorder和Blob,把视频流数据存下来,就能得到录制屏幕的视频。html#照例先来摆放一些元素在界面上WebRTC捕捉屏幕示例 getDisplayMedia<video id="gum-local" autoplay playsinline muted></video><button id="startBtn" disabled&

2021-12-06 09:48:23 1179

转载 Kubernetes(K8s)部署 SpringCloud 服务实战

有状态应用和无状态应用我们先来了解两个概念,有状态应用 和 无状态应用。有状态应用:简单说就是不能简单的实现负载均衡的服务,例如:有数据产生的服务,Redis、MySql、RabbitMQ、ES等,这些服务必须通过一些较复杂的配置才能做到负载均衡。无状态应用:就是没有数据的应用,可以简单的实现负载均衡,复制一个节点即可,例如:SpringCloud中的业务服务。无状态的应用适合部署在 Kubernetes(K8s)中或者容器中。有状态的应用,建议直接在物理机部署,方便管理、维护。Eureka.

2021-12-03 10:22:01 524

转载 下载编译:部署 web 程序

step0#下载编译:Copygit clone https://github.com/jadepeng/simplepvcd simplepvmvn package -DskipTests部署 web 程序Copyjava -jar simplepv-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod输出Copy2021-12-02 20:25:49.014 INFO 35916 — [ main] com.jade

2021-12-03 10:20:45 137

转载 专注虚拟机与编译器研究

在本地函数中会使用Java服务,这些服务都可以通过调用JNIEnv中封装的函数获取。我们在本地函数中可以访问所传入的引用类型参数,也可以通过JNI函数创建新的 Java 对象。这些 Java 对象显然也会受到GC的影响。所以我们需要通过JNI 的局部引用(Local Reference)和全局引用(Global Reference)来保证不让GC回收这些本地函数中可能引用到的 Java 对象。无论是局部引用还是全局引用,其实都是通过句柄进行引用。其中,局部引用所对应的句柄有两种存储方式,一是在本地方法栈帧

2021-12-03 10:15:13 105

转载 下代码给出了此线程池的实现。

实现以下代码给出了此线程池的实现。class Thread_Pool {private:struct Task_Wrapper { ...};atomic<bool> _done_;Blocking_Queue<Task_Wrapper> _queue_; // #1unsigned _workersize_;thread* _workers_;void work() { Task_Wrapper task; while

2021-12-02 10:43:55 45

转载 Hive处理Json数

Json 格式的数据处理Json 数据格式是我们比较常用的的一种数据格式,例如埋点数据、业务端的数据、前后端调用都采用的是这种数据格式,所以我们很有必要学习一下这种数据格式的处理方法准备数据cat json.data{“movie”:“1193”,“rate”:“5”,“timeStamp”:“978300760”,“uid”:“1”}{“movie”:“661”,“rate”:“3”,“timeStamp”:“978302109”,“uid”:“1”}{“movie”:“914”,“rate”

2021-12-02 10:37:49 270

转载 .NET 某智能服装智造系统 内存泄漏分析

二:Windbg 分析到底是哪一方面的泄漏根据朋友描述,程序运行一段时间后,内存就炸了,应该没造成人员伤亡,不然也不会跟我wx聊天了,这里可以用 .time 看看当前的 process 跑了多久。0:000> .timeDebug session time: Thu Oct 21 14:54:39.000 2021 (UTC + 8:00)System Uptime: 6 days 4:37:27.851Process Uptime: 0 days 0:40:14.000Kernel

2021-12-02 10:36:18 204

转载 WebGoat8.2.2-A8不安全的反序列化

1、概念使用反序列化在各编程语言中略有不同,如Java、PHP、Python、Ruby、C/C++等等,但在关键概念上是一样的序列化:将(内存中的)对象转化成数据格式,以便存储或传输反序列化:即序列化的反过程,从某种格式的数据中构建对象如今最受欢迎的序列化数据格式是JSON,而在这之前是XML,只有数据是序列化的,而代码本身不是2、Native Serialization-本地序列化/客制序列化一些编程语言提供了自己的序列化功能,所使用的数据格式比一般的JSON或XML拥有更多的特性和功能,甚至

2021-12-02 10:01:32 538

转载 Gin 如何动态生成模型 swagger 文档

在做 API 接口开发时, 一般会统一 API 返回格式, 例如{“code”: 200,“data”: {//xxxxx//xxxxx},“message”: “OK”}在后端代码定义中, 也会定义一个结构体来对应这种结构, 并且, 由于 data 字段里的数据是未知的(与具体业务相关), 所以会定义一个 interface 来接收type ApiResponse struct {Code int json:"code"Msg string json:"

2021-12-02 09:58:17 232

转载 Java设计模式之(十一)——享元模式

3、享元模式通用代码/**抽象享元角色*/public abstract class Flyweight {// 内部状态private String instrinsic;// 外部状态 通过 final 修改,防止修改protected final String extrinsic;protected Flyweight(String extrinsic) {this.extrinsic = extrinsic;}// 定义业务操作public abstract void

2021-12-01 10:30:57 138

转载 全面了解一致性哈希算法及PHP代码实现

通过上图,我们可以看出,只有key1会改变其存储服务节点。对于大部分的数据来说依然会找到原先的节点。因此,对于n个服务节点的集群来说,当有服务节点增加的时候一条数据只有1/(n+1)的概率会改变其存储的服务节点。这个概率远比取余数法所得的概率要小的多。同样,减少一个服务节点和增加服务节点的原理是相同的,其每条数据重新选择服务节点的概率为1/(n-1)。同样这个概率也是很小的。下面就用一段php代码来简单的实现这个过程复制代码$nodes = array(‘192.168.5.201’,‘192.168

2021-12-01 10:09:51 109

转载 Swift-技巧(九)CGImage To CVPixelBuffer

CGImage To CVPixelBuffer这里使用 CGContext 对象中的函数将 CGImage 转换为 CVPixelBuffer。需要提前导入 CoreGraphics 框架。import CoreGraphics然后将转换函数放在 CGImage 扩展中,就可以直接访问 CGImage 对象的 width、height,甚至可以通过 self 访问到自身。extension CGImage {// 转换函数…}实现方法接下来按照需求由少到多的情况来处理 CGImage 到

2021-12-01 10:05:58 329

空空如也

空空如也

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

TA关注的人

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