杂七杂八
梦为马的诗人
一个被编程耽误的诗人
展开
-
一个多线程并发执行且顺序进出的执行器设计
通过上图我们可以看到,其实这个执行器还是比较简单的,重点就是结果槽是顺序的,执行线程执行完将结果放到对应顺序的结果槽中,而取结果的线程按结果槽的顺序依次从结果槽中取数据,这样就保证了结果是顺序的。需要注意的是结果槽的数量和执行线程的数量是一致的或者大于执行线程数量的,取数据的过程是循环顺序从结果槽中取数据的。考虑这样一种场景,有一批数据需要处理,且每个数据是有顺序的,这时最简单的方式就是按顺序同步执行每个数据的处理。从图中可以看到该执行器分三个部分:数据输入器、并发执行器、结果输出器。原创 2023-07-14 00:45:03 · 217 阅读 · 0 评论 -
三门问题的思考
这个问题起源于很早的一档国外电视节目,这个节目大概是这样一个游戏:有三扇门,其中一扇门后面有一个大奖,参与者选中一扇门打开,如果后面有大奖,参与者就获得大奖,没有的话,参与者将什么也不获得。不得已,自己思考了一番,终于想通了其中的道理。为什么呢,我们换个思路来看这个问题,一扇门的中奖概率为1/3,两扇门的中奖概率是2/3,所以换门的行为相当于用一扇门换两扇门,自然换门的中奖概率是不换的两倍。从我们的直觉来看,现在剩下两扇门,选择哪扇门,中奖的概率都是50%,所以换不换结果都一样,这也是大多数人持有的观点。原创 2023-04-23 02:45:24 · 225 阅读 · 0 评论 -
java实现的列表组合算法
【代码】java实现的列表组合算法。原创 2023-04-22 20:54:04 · 453 阅读 · 0 评论 -
go语言 为什么slice里面的内容变了啊
go语言中的slice底层封装了数组,提供了方便的列表操作方法,是在go里面很常用的结构,但是它也有坑,踩上了,会把你折腾得怀疑人生的。不幸的是,我就被它折腾了一天,过程很让人崩溃,故记录一下,给自己提个醒,也希望能对大家有所启发。废话不多说,还是先上代码吧。package mainimport ( "log" "sync" "sync/atomic")func main() { row:=make([]interface{},10)//用一个slice缓存数据 c:=make(cha原创 2021-06-02 21:46:46 · 161 阅读 · 0 评论 -
casbin访问控制库详解
casbin是一个强大、高效的访问控制库。支持常用的多种访问控制模型,如ACL/RBAC/ABAC等。可以实现灵活的访问权限控制。同时,casbin支持多种编程语言,Go/Java/Node/PHP/Python/.NET/Rust。本文以Go作为示例进行描述。一、例子1先来看第一个例子,在这个例子中,我们控制用户名为“admin”的用户对web路径“/user/*”,有“get”的访问权限,用户“user”对web路径“/goods/list”有“post”访问权限,用户“root”对一切都有访问权限原创 2021-05-30 21:39:39 · 1965 阅读 · 0 评论 -
分享一个java微服务文档生成工具
代码仓库地址:https://gitee.com/luoye_lj/restful-doc工具整体分3个部分,分别是包扫描建立数据结构、文档模板以及根据文档模板和数据结构生成文档 。数据结构按restful结构分为:接口组、接口、请求数据、响应数据。 接口组对应一个controller文件,接口对应controller里面的方法使用方式从仓库中拉取代码执行maven的install命令进行安装在项目中添加依赖<dependency> <groupId&g原创 2020-09-02 19:56:07 · 338 阅读 · 0 评论 -
sudo: java: command not found引发的关于sudo命令执行权限的一点记录
新装的Ubuntu,安装了jdk,在/etc/profile文件中也配置了环境变量,但是奇怪的事情发生了,当执行:java -version时,没有任何问题,但执行:sudo java -version时,却报错:sudo: java: command not found在网上搜索到解决方案:1、执行命令: sudo visudo 打开/etc/sudoers文件:## This file MUST be edited with the 'visudo' command as r原创 2020-07-06 12:05:30 · 1333 阅读 · 4 评论 -
hadoop hdfs记录踩到的坑
研究了几天终于将hdfs的java api调用搞通了,其中的艰辛一度让我想要放弃,但最终让我坚持了下来。这几天的经验,不能不说是宝贵的,故记录下来,以防以后遗忘。我用的是版本2.10.0,你要问我为啥选择这个版本,我的回答是我也不知道,只知道官网上的下载列表第一个就是它。1、下载wget https://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz2、安装我是采用Linux系统来安装的(windo原创 2020-05-14 02:39:15 · 5382 阅读 · 1 评论 -
Android通过jni读写串口
Android读写串口的时候需要jni调用c代码来实现,在开始之前需要下载ndk并配置好环境变量,也就是path里面加上ndk的bin路径。下面是具体的步骤1、建一个包含jni方法的串口操作类:package com.luoye.frigo.device;public class SerialPortReaderWriter { protected native int open...原创 2020-04-28 17:19:10 · 1062 阅读 · 0 评论 -
交叉编译qt5
qt5.9.9源码下载地址:http://download.qt.io/archive/qt/5.9/5.9.9/single/qt-everywhere-opensource-src-5.9.9.tar.xzgcc编译器下载地址:http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnu...原创 2020-04-22 17:11:03 · 790 阅读 · 0 评论 -
MQTT三种等级的服务质量实现
MQTT提供三种等级的服务质量,它们分别是:1、最多一次,尽操作环境所能提供的最大努力分发消息。消息可能会丢失。2、至少一次,保证消息可以到达,但是可能会重复。3、仅一次,保证消息只到达一次。一、最多一次:如上图所示,这个等级,只需要而且是只能将消息发布一次。因为这个等级是允许消息丢失,但不允许消息重复的。二、至少一次如上图所示,为了确保消息至少送达一次,我们需要将消息暂存起来,...原创 2020-04-14 00:02:54 · 5169 阅读 · 4 评论