cf

编程老司机带你玩转 CompletableFuture 异步编程

无人久伴 提交于 2020-03-09 08:11:09
本文从实例出发,介绍 CompletableFuture 基本用法。不过讲的再多,不如亲自上手练习一下。所以建议各位小伙伴看完,上机练习一把,快速掌握 CompletableFuture 。 个人博文地址: https://sourl.cn/s5MbCm 全文摘要: Future VS CompletableFuture CompletableFuture 基本用法 0x00. 前言 一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。 Java 提供 Runnable Future<V> 两个接口用来实现异步任务逻辑。 虽然 Future<V> 可以获取任务执行结果,但是获取方式十方不变。我们不得不使用 Future#get 阻塞调用线程,或者使用轮询方式判断 Future#isDone 任务是否结束,再获取结果。 这两种处理方式都不是很优雅,JDK8 之前并发类库没有提供相关的异步回调实现方式。没办法,我们只好借助第三方类库,如 Guava ,扩展 Future ,增加支持回调功能。相关代码如下: 虽然这种方式增强了 Java 异步编程能力,但是还是无法解决多个异步任务需要相互依赖的场景。 举一个生活上的例子,假如我们需要出去旅游,需要完成三个任务: 任务一:订购航班 任务二:订购酒店 任务三:订购租车服务 很显然任务一和任务二没有相关性,可以单独执行

AI Studio图形化任务说明

*爱你&永不变心* 提交于 2020-03-04 17:07:45
目录 图形化任务说明 创建图形化任务 图形化任务预览 预置算法部署后调用参数样例 4.1 线性回归的请求及返回说明 4.2 逻辑回归的请求及返回说明 4.3 图像分类的请求及返回说明 4.4 目标检测的请求及返回说明 内置数据集说明及下载地址 图形化任务说明 图形化任务旨在使用图形拖拽的方式来设计并训练模型, 并可进行快速部署. 同时还可以生成对应的源码. 最终达成"先实现, 再学习"的目的. 有效提高开发者的效率. 图形化任务使用GPU集群作为支撑, 具有实时高速的并行计算和浮点计算能力. 该功能目前属于Beta版本. 仅对受邀用户开放试用. 创建图形化任务 点击创建项目, 然后在"配置资源"中选择"图形化任务", 然后填写必要信息后, 点击"创建" 图形化任务预览 创建成功后, 可以进入项目的预览页面. 预览页面除了项目基本信息外, 可以切换设计器视图和代码视图. 设计器视图预览: 代码视图预览: 进入编辑项目的界面: 左侧为工具箱, 可以从工具箱向中央画布拖入各种组件: 当前工具箱内为算法, 数据, 训练, 测试4类: 算法: 数据: 训练: 测试: 当前尚不支持自定义控件. 近期会予以支持. 最终构建成完成的网络: 构建完成后可以启动训练: 此时左侧工具箱已经锁定, 下方开始输出日志: 点击"任务列表", 也可以查看当前任务的状态 正式部署: 当运行完成后点击上方"部署

STM32堆栈大小及位置

半腔热情 提交于 2020-02-28 06:22:11
STM32的地址空间映射: 首先STM32的堆栈是存放在片上静态SRAM中的,地址分配可以见Keil的编译map文件: HEAP 0x200106f8 Section 512 startup_stm32f2xx.o(HEAP) STACK 0x200108f8 Section 1024 startup_stm32f2xx.o(STACK) __heap_base 0x200106f8 Data 0 startup_stm32f2xx.o(HEAP) __heap_limit 0x200108f8 Data 0 startup_stm32f2xx.o(HEAP) __initial_sp 0x20010cf8 Data 0 startup_stm32f2xx.o(STACK) 上面节选中, __heap_base 是堆的基地址, __initial_sp 是栈指针 。示意图如下: 堆和栈的大小在启动文件startup_stm32f2xx.s中设置: Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp ; Heap Configuration ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>

github删除最后一次提交

北慕城南 提交于 2020-02-28 02:57:47
代码错误提交,想要删除,花了点时间解决了,记录如下。 使用git命令查看提交记录,获取最后一次提交记录的ID。假设这个ID为"4d575g7cf015e09fbf0fa6y28d11d73248db5gfc"。 然后如下操作: // 本地版本重置 git reset --hard 4d575g7cf015e09fbf0fa6y28d11d73248db5gfc // 强制推送到远端 git push origin HEAD --force 同时查看远端,确认删除成功。 来源: oschina 链接: https://my.oschina.net/k8king/blog/3163777

nginx事件模块实现细节

冷暖自知 提交于 2020-02-27 05:45:31
在 nginx事件模块结构体详解 中,我们讲解nginx的事件模块的整体工作流程,并且着重讲解了组织事件模块的各个方法的作用,本文则主要围绕这整个流程,从源码的角度讲解nginx事件模块的实现细节。 1. ngx_events_block()----events配置块解析 nginx在解析nginx.conf配置文件时,如果当前解析的配置项名称为 events ,并且是一个配置块,则会调用 ngx_events_block() 方法解析该配置块,如下是该方法的源码: static char * ngx_events_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { char *rv; void ***ctx; ngx_uint_t i; ngx_conf_t pcf; ngx_event_module_t *m; // 如果存储事件模块配置数据的配置项不为空,说明已经解析过配置项了,因而直接返回 if (*(void **) conf) { return "is duplicate"; } // 这里主要是计算event模块的个数,并且将各个event模块的相对顺序标记在了该模块的ctx_index属性中 ngx_event_max_module = ngx_count_modules(cf->cycle, NGX

部署以太坊智能合约(Hello World)

和自甴很熟 提交于 2020-02-27 02:16:19
以太坊(Ethereum)是一提供个智能合约(smart contract)功能的公共区块链平台。在以太坊上开发应用,首先需要安装其客户端基于Go语言的Geth, 官网为: https://github.com/ethereum/go-ethereum。 1.进入命令行窗口 2.在命令行窗口输入 geth --datadir "E:\geth\devchain" --dev console 输入命令后,它会在指定目录下存放数据 C:\Users>geth --datadir "E:\geth\devchain" --dev console INFO [11-26|14:25:03.001] Maximum peer count ETH=50 LES=0 total=50 INFO [11-26|14:25:08.333] Using developer account address=0x823356EF65d2f7004a15368f18cb5964F1f28bd9 INFO [11-26|14:25:08.574] Starting peer-to-peer node instance=Geth/v1.9.6-stable-bd059680/windows-amd64/go1.13 INFO [11-26|14:25:08.837] Allocated trie memory

非vg情况下无损扩展分区

六月ゝ 毕业季﹏ 提交于 2020-02-26 11:14:00
[root @server /]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): h h: unknown command Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change

直播回顾|第四范式姚权铭:搜索协同过滤中的交互函数

早过忘川 提交于 2020-02-26 07:34:29
导读:怎样刻画用户嵌入向量(user embedding)和物品嵌入向量(item embedding)之间的交互是在评分矩阵上面做协同滤波的关键问题。随着机器学习技术的发展,交互函数(interaction function)渐渐的由最初简单的矩阵内积,发展到现在复杂的结构化神经网络。本文介绍了第四范式研究组将自动化机器学习技术引入推荐系统中的一次尝试;特别地,将交互函数的设计建模成一个结构化神经网络问题,并使用神经网络搜索(neural architecture search)技术去设计数据依赖的交互函数。 01 整体工作概述 交互函数 (interaction funciton,IFC)是协同过滤(Collaboration Filtering,CF)的核心,它对性能非常敏感。下面简单地介绍一下我们在这方面取得的成果。 1. 我们将交互函数的设计形式化为一个自动化机器学习(Automated Machine Learning,AutoML)的问题。这是 首次 将自动化机器学习引入交互函数进行特征工程; 2. 构造了结构化的搜索空间,目的是使得机器学习算法能够快速自动化搜索,同时使得搜索的交互函数超过专家设计的交互函数带来的效果; 3. 提出了one-shot搜索算法,允许交互函数能够高效地进行随机梯度下降、点对点的进行AutoML搜索。 4.

项目管理软件的应用现状与发展趋势

只愿长相守 提交于 2020-02-26 04:29:57
企业信息化是企业高效运行的基础。如何达到高效的目的跟管理软件的选型分不开。管理软件以企业管理需求为基础,以IT技术为支撑,为企业提供数据信息的综合管理办法。 随着项目管理思想逐步被接受,市面上涌现出越来越多的管理软件出现在公众的面前,如雨后春笋般层出不穷,一时间“管理软件”名声大噪。市场反响较好的有 CORNERSTONE ,一款软件聚合多种功能 , 全流程帮助各大企业管理整个项目生命周期。 “如果一个工具突然变得流行起来,但是如果它没有建立起强烈的用户满意度,那么在几个周期后就会过时。但这并不意味着它消失了。许多工具以某种形式返回,经过改进并且通常影响更大。” 项目管理工具发展初期或因产品质量或因市场纷乱等各方面因素导致管理工具存在很多问题: 数据安全性差 网络能力弱 仅限解决基本日常事务 界面操作复杂,技术难度大,用户体验差 价格高昂,小中型企业难以承担 售后服务没有保障 虚假宣传,混淆视听 集成性差,员工需使用不同的信息管理系统相互切换,影响效率 因前期管理软件质量的参差不齐,所以难以得到用户的认可和选购。但是随着科学技术的发展,管理软件的各方面指标都有了很大的提升。从两个方面来看: 技术方面 产品稳定性增强。产品的性能及网络环境相较初期稳定性上了一个层级。 应用集成化。打破了数据壁垒,实现数据共享,效果最大化。 系统应用网络化。互联网的高速发展的时代

linux压缩命令

馋奶兔 提交于 2020-02-26 02:05:43
把常用的tar解压命令总结 tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 # tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 # tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 # tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思 压缩 tar –cvf jpg.tar *.jpg