自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 “一键”快速安装python3.10

【代码】“一键”快速安装python3.10。

2023-11-28 15:46:34 176

原创 cuda 或者 OpenCL代码编译方式

cuda或者OpenCL C或C++代码编译成汇编再编译成可执行文件基本流程

2022-12-01 14:10:10 652 1

原创 C++与汇编ASM代码优化方法

C++嵌套GPU-PTX汇编代码优化

2022-11-30 15:33:26 818

原创 好文合集序列

1、央行数字货币的意义

2021-11-23 14:20:11 12085

原创 git合并两个不同仓库的代码

假设将仓库A某一分支合并至仓库B某一分支:方式一:(1)再仓库B上新建一个分支,然后将仓库A需要合并分支上的所有文件copy至新建分支,这样就相当于全在一个仓库下进行了,这样接下来按照正常的merge步骤执行即可;(2)git merge合并分支;(3)冲突解决;(4)结束。方式二:参照博文:合并两个不同远程仓库的Git命令...

2021-10-20 14:53:59 2917

原创 Go 编程哲学

1、少即是多2、世界是并行的3、组合优于继承4、非侵入式的接口

2021-10-14 19:38:57 85

原创 Go工程管理

1、Go几个相关的环境变量(1)$GOROOT:Go 的安装根目录,Linux 下的环境默认是/usr/local/go。(2)$GOPATH :Go 语言编程的工作目录( workspace 如果没有设置 PATH 环境变 ,则linux下系统默认是/HOME/go)(3)$GOBIN 是带有 main 函数的源程序执行 go install 时生成的可执行程序安装目录,默认是$GOPATH/bin。如果想在任何路径执行安装的程序,则可以将$GOBIN 添加到$PATH中。(4)$GOOS 用来设

2021-10-13 23:02:52 148

原创 Go 语言陷阱

1、多值赋值和短变量声明

2021-10-12 23:54:31 171

原创 Go 反射

1、定义:反射就是程序能够在运行时动态地查看自己的状态,并且允许修改自身的行为。2、底层类型和基础类型的区别在于,基础类型是抽象的类型划分,底层类型是针对每一个具体的类型来定义的,比如不同的 struct 类型在基础类型上都划归为 sturct 类型,但不同的 struct底层类型是不一样的。3、反射规则4、反射API(1)分类i. 实例到 Value:通过实例获取 Value 象,直接使用 reflect. ValueOf()函数,例如: func ValueOf(i interface

2021-10-11 22:16:53 74

原创 Go并发和并行

1、基本概念并发:并发意味着程序在单位时间内是同时运行的。并行:并行意味着程序在任意时刻都是同时运行的;2、goroutine 特性:(go func ();)(1)go 的执行是非阻塞的,不会等待。(2)go 后面的函数的返回值会被忽略。(3)调度器不能保证 goroutin 的执行次序。(4)没有父子 goroutin 的概念,所有的 goroutin 是平等地被调度和执行的。(5)Go 程序在执行时会单独为 main 函数 goroutin ,遇到其他go关键字时再去创建其他的 go

2021-10-10 21:35:44 757

原创 Go接口小结

1、所谓实现接口实际上就是实现接口内声明的所有的方法集,故而只要具体类型的方法集是接口方法集的超集,就代表该类型实现了接口,编译器在编译时会进行方法集的校验 。2、 接口是没有具体实现辑的,也不能定义字段。3、由于空接口的方法集为空,所以任意类型都被认为实现了 空接口(可根据1中定义理解) ,任意类型的实例都可以赋值或传递给空接口 ,包括非命名类型的实例。4、非命名类型由于不 能定义自己的方法 所以方法集为空,因此其类型变量除了传递给空接口 ,不能传递给任何其他接口(需要回头梳理一下Go的类型系统)

2021-10-09 22:31:26 112

原创 IPFS与HTTP协议对比

HTTP协议缺点:极易受到攻击,防范攻击成本高 数据存储成本高 数据的中心化带来泄露风险 大规模数据存储、传输和维护难相较于HTTP,IPFS的优点:下载速度快,IPFS使用了BitTorrent协议作为数据传输的方式,使 得IPFS系统在数据传输速度上大幅度提高 优化全球存储 ,IPFS采用为数据块内容建立哈希去重的方式存 储数据,数据的存储成本将会显著下降 更加安全 ,与现有的中心化的云存储或者个人搭建存储服务相 比,IPFS、Filecoin的分布式特性与加密算法使得数据存储更..

2021-10-08 23:42:01 606

翻译 Go lib依赖包整理

achieve包achieve/tar //unix系统常用的解压缩格式achieve/zip //windows系统常用的解压缩格式上述两个包均为实现数据的不同格式解压缩compress包功能正如其名字之意 —— 压缩,其提供的数据压缩格式见下述子包:compress/bzip2 //bzip2包实现bzip2的解压缩compress/flate //flate包实现了deflate压缩数据格式compress/gzip //gzip包实现了gzip格式压缩文件的读写compres

2021-08-29 23:02:58 577

原创 SQL优化基本理论

简述:首先MYSQL是自带优化器(Mysql Query Optimizer)的,而且优化器的总体性能还不错,当然,这是对像我这种菜鸡来说是还不错的,阿里人间就直接修改了SQL的底层优化器,自己建立了自己的一套SQL优化系统,关于Mysql的优化器,介绍如下:1. Mysql有专门优化select模块的优化器模块,其会根据客户端请求的Query提供其认为最优的执行计划,但对于DB来说不一定是最优的;2. 当client想Mysql请求一条Query,命令解析器模块完成命令分类,区别出是select并发送

2021-06-20 22:31:13 133

原创 Git error

报错,若是报的是permissions error, 同时有对应的IP,端口22什么的(port 22:2: Too many authentication failures for git.),则可能的情况是:1、.ssh/config文件未配置必要信息2、git命令后面的git地址不对3、若是报某些曲线证明不存在,则修复该文件/etc/ssh/sshd_config,在文件中加入缺少的证明,格式如下: Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes12

2021-05-31 14:54:53 234

原创 数据库优化

数据库插入操作优化基础1. 插入无索引表比插入有索引表快,因为插入有索引表在寻址过程中会有延迟。2. 插入小表比插入大表快,业务一般插入速度是以条数计算,大表一条记录比较大,需要IO的时间比较长。3. 多个连接并发执行更快,MySQL之类的数据库支持并发操作,故并发执行插入操作会更快些,但注意链接打开数,小心数据库宕机,故需要控制线程数目。4. 日志缓存增大可以加快插入速度,因为减少了IO访问次数。5. 一次插入多条数据可以加快插入速度。6. 使用事务会比较快一些。...

2021-05-27 14:27:45 50

原创 Go Routine并发数量限制

在这之前,你需要了解什么是进程,线程和协程,对此网上有一大把的概念和解说,很详细,我们仅讲解三者关系,概念性的东西不在累述。可参考博文进程线程小别一个程序至少包含一个进程,而一个进程至少包含一个或多个线程,而协程则是更为灵活和轻量级的线程,和线程类似,共享堆,不共享栈,协程的切换一般由程序员在代码中显式控制。它避免了上下文切换的额外耗费,兼顾了多线程的优点,简化了高并发程序的复杂。 协程是一种协作任务控制机制,在最简单的意义上,协程不是并发的,而Goroutine支持并发的。因此Goroutine

2021-05-23 22:36:07 501 2

原创 Go sync.map

sync.map产生的原因map是非线程安全的,当进行并发操作时容易产生意想不到的错误sync.map的特点1、sync.map 是线程安全的,读取,插入,删除也都保持着常数级的时间复杂度。2、通过读写分离,降低锁时间来提高效率,适用于读多写少的场景。3、Range 操作需要提供一个函数,参数是 k,v,返回值是一个布尔值:f func(key, value interface{}) bool。4、调用 Load 或 LoadOrStore 函数时,如果在 read 中没有找到 key,

2021-05-11 15:04:28 354

原创 Go语言编码规范

注:相关的文章虽然在网上一大堆了,但是自己总结终究是自己所得,哈哈哈代码格式规范goland自带规范格式操作,仅需control + alt + L,就这么简单,给你搞得规规矩矩的,缩进工整。包相关包名要求小写,简洁,准确,若是多个单词则单词间下划线"_"分割另外在导入包时请务必使用绝对路径,不要使用相对路径,真心怕你修改文件层级时你的包找不着北了。当导入多个包时要求尽量把包划分为三类,标准库包,程序内部包,第三方包,然后同一类包按照字母序排序,不同类包之间最好换行加空行分割多个包导入格式如

2021-05-11 13:46:39 123

原创 python依赖打包

依赖打包的好处将代码所有的依赖打包进一个文件,当代码迁移至新的平台时仅需要一条命令便可以下载,方便又快捷, 而不用一个一个的安装依赖。你可以选择在线打包和下载依赖,也可离线打包加载依赖,分别操作如下:在线: 这种方式需要运行平台可支持下载网络资源才行: 1. 打包依赖:pip freeze >requirements.txt 2. 下载依赖:pip install -r requirements.txt离线: 这种方法实际上是提前将依赖打包,并重新下载一份依赖打包至一个离线的文件夹,然

2021-05-09 22:39:55 4077

原创 HTTPS原理

HTTPS原理HTTP协议是不安全的,很容易被攻击和插入各种小广告,通常攻击者只需要设置相应的DNS,做一个中间人攻击,再将返回的数据修改。相反,HTTPS是安全的,通过HTTPS协议进行通信时服务端会进行相关的验证,...

2021-05-04 21:12:14 224

原创 Go语言及go编辑器常识

1、Go语言是一个快速的、静态类型的编译型语言2、查看和使用常见的Go命令help go help [command] get more information about commandbuild compile packages and dependenciesclean remove object filesenv print Go environment informationfix run go tool fix on pa

2021-05-03 22:41:13 359

原创 python初学者小建议

python初学者小建议常见的坑1. 空格和Tab键缩进方式的区别;在此我们特别强调,python是一门采用缩进和()

2021-05-01 01:10:56 227 2

原创 IPFS、区块链的libp2p

IPFS基本定义IPFS即InterPlanetary File System,是一个基于内容寻址的、分布式 的、新型超媒体传输协议。IPFS支持创建完全分布式的应用。它旨在使 网络更快、更安全、更开放。IPFS是一个分布式文件系统,它的目标是 将所有计算设备连接到同一个文件系统,从而成为一个全球统一的存储 系统。IPFS与区块链的基本关系区块链是什么?区块链实际上就是一个分布式数据库,而这个数据库是分布式的、基于密码学的分布式账本数据库。其具有分布式、不可篡改、开放与共识等基本特性。但是,其具

2021-04-23 20:59:32 1529 3

原创 死锁

死锁1、死锁的基本定义死锁是指两个或者两个以上的进程在执行的过程中,由于竞争资源或有彼此通信造成的一种阻塞的现象,若无外力作用,他们都将无法执行下去。比如进程A持有进程B所需的资源,进程B持有进程C所需的资源,进程C持有进程A所持有的资源,那么A要执行需要等待C执行结束,进程B要执行需要等待进程A,进程C要执行要等待进程B执行结束,从而形成了一个闭环和互相等待的状态,那么显然,谁也不可能执行结束,此时就产生了死锁。参与死锁的进程称为死锁进程。2、死锁产生的四个必要条件1. 资源互斥:某段时间内资源

2021-04-18 16:16:01 89

原创 进程调度策略

进程调度策略1、先来先服务(FCFS)FCFS为first come first server的缩写,即先来先服务之意。先来先服务调度算法是最简单的调度算法,以作业进入就绪队列的先后顺序进行顺序调度,既可用于作业调度也可用于进程调度。2、短作业(进程)优先SJ§FSJ(P)F为short job(program) first的缩写,即短作业(进程)优先之意。既可用于作业调度也可用于进程调度。该算法的调度策略为从作业的后备队列或者从进程的就绪队列中优先取出并执行预估执行时间短的作业或者进程,并分配处

2021-04-17 23:08:51 843

原创 进程间的通信

进程间的通信进程间的通信实质上是通过计算机内核进行通信.在进程A与进程B进行通信时,计算机会在内核中开辟出一段缓冲区,然后进程A将通信数据拷至缓冲区,然后进程B再从缓冲区将数据取走,进而实现进程间的通信.进程通信的方式不同进程间的通信方式包含以下七种: 1. 管道/匿名管道(Pip) 2. 有名管道(FIFO) 3. 信号(Signal) 4. 消息队列(Message Queen) 5. 共享内存(Share Memory) 6. 信号量(Semaphore) 7. 套接字(Sock

2021-04-17 19:16:41 389

原创 FILCOIN STORAGE DATA IN IPFS WITH OPRATION

FILCOIN STORAGE DATA IN IPFS WITH OPRATION一 IPFS相关搭建1.1 搭建IPFS(搭建一个与IPFS公网连接的较为简单)wget -C https://github.com/ipfs/go-ipfs/releases/download/v0.8.0/go-ipfs_v0.8.0_linux-386.tar.gz //获取源tar xvfz go-ipfs_v0.8.0_linux-386.tar.gz //解压安装包cd go-ipfs //进入解

2021-04-15 18:00:57 132 1

原创 进程与线程小别

进程与线程小别举个小栗子:当你每打开一个app时你开启了一个新的进程,而在使用app时你每点击打开一个小功能或者小的选项,实际上一般都会打开一个小的线程。1、程序、进程与线程的基本定义1.1 程序程序是指令、数据及其组织形式的描述。我们用高级语言编写的程序在编译后实际上就是一串指令集,而这些指令集完美的将人类的思维逻辑呈现在了计算机上。而进程则是程序的实体,是程序在计算机上的动态表现。1.2 进程进程是计算机系统进行资源分配和调度的基本单位,每一个可执行的程序至少包含一个进程,而一个进程至少

2021-04-13 20:40:43 360

原创 区块链基础概念

定义:区块链实际上是一个分布式的账本,一种通过密码学去中心化、去信任的方式集体维护一个公共数据库的技术方案。数据库:该数据库由所有的参与者来决定,具有不可篡改性。同时该数据库采用分布式存储和分布式记录。(说明:不可篡改性是指在当前的技术下和实际情况下是无法篡改的,但并不代表在未来是不可行的,如果计算机的计算能力足够强,那么,由于区块链底层是基于密码学的,难保有一天可以破解,假使到了那一天,也难保会出现新的加密解决方案,使之仍然成为不可能。而这里的分布式记录则指有所有参与成员共同记录)区块链技

2021-03-06 20:07:40 683

空空如也

空空如也

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

TA关注的人

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