unix网络编程(四)epoll反应堆

epoll_wait()返回cfd—>cfd回调senddata()—>将cfd摘下来监听读事件—>…epoll_wait()返回cfd—>cfd回调recvdata()—>将cfd摘下来监听写事件—>lfd满足accept—>返回cfd---->read()读数据—>write()给客户端回应。有客户端连接上来—>lfd调用acceptconn()—>将cfd挂载到红黑树上监听其读事件—>有监听fd事件发送—>返回监听满足数组—>判断返回数组元素—>,其中有具体的epoll和epoll反应堆模型的分析。
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

unix网络编程(四) 线程池并发服务器

问题2解决思路就是利用回调机制,我们同样可以借助结构体的方式,对任务进行封装,比如任务的数据和任务处理回调都封装在结构体上,这样线程池的工作线程拿到任务的同时,也知道该如何执行了。创建线程时需要给出入口函数thrRun,该函数的核心功能是从任务队列取任务执行,执行结束再取任务,循环上述步骤。线程池是一个抽象概念,可以简单的认为若干线程在一起运行,线程不退出,等待有任务处理。核心功能:向任务队列添加任务,并通知因任务队列空而阻塞的线程。2.线程池上的线程如何能够执行不同的请求任务?
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

一种简单的统计pytorch模型参数量的方法

获取pytorch模型参数量的简单直接的方法
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

算法 || 蛮力法【字符串匹配问题】#04

字符串匹配问题【问题描述】对于字符串s和t,若t是s的子串,返回t在s中的位置(t的首字符在s中对应的下标),否则返回-1【问题求解】采用暴力法穷举求解,从s的每一个字符开始查找,看t是否会出现。当比较的两个字符不相同时,回退 i,j,重新查找。【代码】//字符串匹配//对于字符串s和t,若t是s的子串,返回t在s中的位置(t的首字符在s中对应的下标),否则返回-1#include<iostream>#include<string> using namespace
分类: 移动开发 发布时间: 04-09 23:51 阅读次数: 0

通过位运算快速获得二进制前i位为0或1的掩码

所以想要获得前i位为0的二进制掩码,需要将1左移sizeof(T)*8 - i。因此,左移i位后i位为1,前sizeof(T)-i位为0。在前i位置0的基础上。
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

统计二进制中比特1的个数

这样从后往前,依次将1置为0同时result+1,最终n为0时,得出result表示共有多少个1。通过这种方式计算非常快,最差时间复杂度为o(n),且仅有减法和与操作这种简单的操作。正数可以得到正确的比特1的数量,负数得到的是。
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

enable_if模板编程实现字节序转换模板

使用enable_if模板编程简单实现字节序转换模板
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

Fabric中的RAFT共识算法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

torchaudio的I/O函数

torchaudio如何加载保存音频、查看音频信息遇到保存为flac格式,报错flac does not support encoding怎么解决torchaudio IO函数的backbone
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

Hyperledger Fabric 2.3环境配置搭建指南及BUG记录

Hyperledger Fabric 2.3 testnet 环境配置准备工作VMWARE安装Xshell 安装Ubuntu下载安装配置远程登录Ubuntu系统及实现windows和ubuntu之间的文件传输在ubuntu上安装ssh服务端关闭防火墙命令提示符ping测试配置Xshell7*正在着手从零建立一个完整的体系,特此将搭建全过程记录下来以供参考。 *准备工作有多种开发方案可供选择,这里采用的是Windows+Xshell+Vmware的方案,直接用ubuntu开发也非常方便,考虑到后期有可能
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

C/C++常用数据类型的转换

(如:浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分记录最高的有效位,当整数的有效位数超过浮点数的尾数时,有可能会舍弃一部分精度)在这种情况下,unsigned int 将超越 long int,因为它可以保存更高的值。总结:位数不同的转换采用补零和舍弃的方式,有无符号的转换本质是二进制不变的转换,整型浮点型的转换是舍弃小数,保留整数位的转换。但是有符号数和无符号数的最高位表示不同,所以负数转为无符号 = 2^32 - 负数的绝对值。有符号数,符号位不变,多了裁剪高位,少了高位补零。
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

Fabric中的Kafka集群原理详解

Kafka原理详解 相关背景介绍P2P模式订阅模式Kafka结构Kafka特性基础架构及名词解释工作流程分析相关背景介绍Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Lin
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

pthread.h中的函数

参考pthrad.h中的函数以及man手册,列举了pthread库中的工具函数并做了分类。pthread库中的重点当然是thread、mutex和condition。此外,pthread提供了读写锁、自旋锁的实现,以及控制多线程启动的pthread_barrier和线程全局变量(thread_local)的实现。帮助我们快速开发多线程的访问控制。
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

Hyperledger Fabric 2.3 测试网部分指令合集翻译

Hyperledger Fabric 2.3 测试网部分指令合集翻译指令格式ModesFlags:Used with `network.sh up`, `network.sh createChannel`Used with `network.sh deployCC`指令格式在Fabric中的指令格式应当为network.sh <Mode> [Flags],下文将详细介绍Mode指令和Flags指令分别有哪些 。Modesup — bring up fabric orderer and p
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

osnadmin: error: unknown long flag ‘--channelID‘, try --help Channel creation failed

osnadmin: error: unknown long flag '--channelID', try --help Channel creation failed在建立Hyperledger Fabric 2.3测试网的时候出现了这个问题。具体是发生在建立通道的时候,纯粹运行./network.sh up是没有任何问题的,在建立通道的时候./network.sh up createChannel报错,报错信息为:osnadmin: error: unknown long flag '--chann
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

算法 || 蛮力法【求解最大子序列和】#05

求解最大子序列和【问题描述】给定一个有n个整数的序列,要求求出其中最大子序列的和【问题求解】如果扫描遇到负数,当前子序列和 thisSum 将会减小,若 thisSum 为负数,表明前面已经扫描的那个子序列可以抛弃了,重新开始下一个子序列的分析,并置thisSum为0。若这个子序列和thisSum不断增加,那么最大子序列和maxSum也不断增加。【代码】//求解最大子序列和//给定一个有n个整数的序列,要求求出其中最大子序列的和#include<iostream>using
分类: 移动开发 发布时间: 04-09 23:51 阅读次数: 0

Hyper ledger Fabric 2.3 部署链码中遇到的问题

Hyper ledger Fabric 2.3 部署链码中遇到的问题Docker版本太新代理链接被拒绝GO版本太低Docker版本太新Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image inspection f
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

Hyperledger Fabric2.3 中 Peer指令合集

Hyperledger Fabric2.3 链码部署中Peer指令合集Available Commands/可用指令peer chaincode [command] [flags]command合集Flag合集peer channel [command]command合集peer lifecycle chaincode [command]command合集peer node [command]command合集peer snapshot [command]command合集Peer指令格式 peer [c
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

Fabric2.3 智能合约的打包及安装

Fabric2.3 智能合约的打包及安装打包智能合约安装链码包打包智能合约我们需要先打包链码,然后才能将其安装到我们的peer节点上。要注意的是,如果要安装的智能合约是用 Go,JavaScript,TypeScript 语言写的话,这三种语言打包的过程是不一样的。 这里主要介绍的是Go语言。(如果有想看其它语言的可以评论区留言)在我们打包链码前,我们需要安装链码相关依赖项。在Fabric samples目录下找到文件夹asset-transfer-basic/chaincode-go// 进入指定
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0

对于Fabric2.3 peer chaincode invoke的详细解析

对于Fabric2.3 peer chaincode invoke的详细解析在测试Fabric-samples的资产转移模型(asset-transfer-basic)时,在该Go智能合约被打包,安装,批准,提交到通道完成后,最后需要调用写好的chaincode来初始化内置写好的账本,即InitLedger函数。初始化调用该函数的指令很长,特地单独辟出来学习记录一下://该指令用于将已经提交到通道的链码进行一个用的调peer chaincode invoke //本地端口-o localhost:
分类: 企业开发 发布时间: 04-09 23:51 阅读次数: 0