github

python线程条件变量Condition(31)

試著忘記壹切 提交于 2021-02-12 13:54:17
对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – 线程条件变量Condition. 一.线程条件变量Condition相关函数介绍 acquire() — 线程锁,注意线程条件变量Condition中的所有相关函数使用必须在acquire() /release() 内部操作; release() — 释放锁,注意线程条件变量Condition中的所有相关函数使用必须在acquire() /release() 内部操作; wait(timeout) — 线程挂起(阻塞状态),直到收到一个notify通知或者超时才会被唤醒继续运行(超时参数默认不设置,可选填,类型是浮点数,单位是秒)。wait()必须在已获得Lock前提下才能调用,否则会触发RuntimeError; notify(n=1) — 通知其他线程,那些挂起的线程接到这个通知之后会开始运行,缺省参数,默认是通知一个正等待通知的线程,最多则唤醒n个等待的线程。notify()必须在已获得Lock前提下才能调用,否则会触发RuntimeError,notify()不会主动释放Lock; notifyAll() — 如果wait状态线程比较多,notifyAll的作用就是通知所有线程; 二.线程条件变量Condition原理

vue-element-admin安装

五迷三道 提交于 2021-02-12 12:13:43
URL: https://panjiachen.github.io/vue-element-admin-site/zh/ 测试了下面两个方案: 集成方案: vue-element-admin 基础模板: vue-admin-template 建议 你可以把 vue-element-admin 当做工具箱或者集成方案仓库,在 vue-admin-template 的基础上进行二次开发,想要什么功能或者组件就去 vue-element-admin 那里复制过来。 操作步骤: # 克隆项目 git clone https://github.com/PanJiaChen/vue-element-admin.git # 进入项目目录 cd vue-element-admin # 安装依赖 npm install # 建议不要用 cnpm 安装 会有各种诡异的bug 可以通过如下操作解决 npm 下载速度慢的问题 npm install --registry=https://registry.npm.taobao.org # 本地开发 启动项目 npm run dev 额外操作: 在项目根目录下,建立.npmrc文件,输入如下内容,解决node-sass的问题。 sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

CNCF关于Dan Kohn去世的声明

风流意气都作罢 提交于 2021-02-12 11:32:33
这个周末,随着Dan Kohn的去世,我们失去了一位开源社区的巨人。作为执行董事,他帮助建立的CNCF,将永远是他作为技术世界的先驱和创新者的遗产的所在地。作为一个社区,我们仍然谦卑和感激他为这个基金会、他的同事和他的朋友们所做的不懈努力。他为创建一个受欢迎和安全的包容性基金会所做的工作对所有人都是重大和有益的。我们今天所经历的强大和多样化的领导源于Dan的决心。Dan对开源有着坚定的热情和信念。他将被怀念,但那些了解他的温和本性和感受到他的支持触摸的人永远不会忘记。我们的思念和祈祷与Dan一家同在,多年来,他们如此优雅地与我们分享了Dan的光芒。虽然我们几乎无法想象没有Dan的CNCF会是什么样子,但我们知道没有他就不会有CNCF,为此,我们真的很感激。谢谢你,Dan。 如果你想为Dan留下纪念信息,请发送PR到: https://github.com/cncf/memorials/blob/master/dan-kohn.md CNCF家族 点击【阅读原文】阅读网站原文。 扫描二维码联系我们! CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。 CNCF ( 云原生计算基金会 )致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化

[计算机视觉]基于内容的图像搜索实现

独自空忆成欢 提交于 2021-02-12 11:30:41
图像搜索引擎一般有三种实现方式: (1)Search By Metadata,这种方式不会考虑图片本身内容(图片包含物体,以及图像像素分布等),纯粹根据图像标签来进行检索。如果某个网页中有一张赛马的图片,并且网页文本内容中包含“赛马”(或者相关词汇)的文字,当用户搜索“赛马”、“马”、“horse”等关键字时,搜索引擎就会把这张图当作检索结果返回给用户。换句话说,此时的图像搜索引擎干的事情跟普通搜索引擎差不多,匹配关键词,并将对应图片返回给用户。这种工作方式的优点是速度快,在普通搜索引擎的技术基础之上很容易改进去实现。缺点也很明显,它完全依赖于描述图片的文字(标签),如果描述图片的文字不对或者相关性不大时,搜索准确性可想而知,比如我这篇博客中如果插入一张“猫”的照片,但是整篇博客文章对“猫”只字不提,那么基于Search By Metadata的搜索引擎很难找到博客中猫的图片。 有一类图片分享网站要求用户在上传图片时,人工用几个词汇描述图片中有什么(标签),便于后面基于Metadata的搜索。当然也不排除一些基于深度学习的图片分类自动打标签的方式。 (2)Search By Example,这种方式考虑图片本身内容(图片包含物体,以及图片像素分布等等),用户输入图片,搜索引擎根据图片内容,返回与该图片相似的图片结果。这种方式相比Search By Metadata要复杂一些

自定义自己的vue-cli模板

余生颓废 提交于 2021-02-12 09:58:01
自定义自己的vue-cli模板 在使用vue-cli的过程中,常用的webpack模板只为我们提供最基础的内容,但每次需要新建一个项目的时候就需要把之前项目的一些配置都搬过来,这样就造成挺大的不方便,如果是作为一个团队,那么维护一个通用的模板,我认为是挺有必要的。 例如下面是我常用构建项目的目录。 src ├─api //接口 ├─assets //图片 ├─components //公用组件 ├─css //样式 主要是scss ├─js //第三方以及工具类 ├─page //页面 ├─router //路由 └─store //vuex 下面说下怎么自定义自己的vue-cli模板 fork一个自己的模板 从 https://github.com/vuejs-templates/webpack fork 一个库,再提交自己的修改到【自己的分支】,因为我们大部分内容还是在这个基础上做修改的。 关于vue-cli的源码分析可以参考下这个文章 从vue-cli源码学习如何写模板 vuejs-templates/webpack 目录如下, │ .gitignore │ circle.yml │ deploy-docs.sh │ LICENSE │ meta.js //该文件必须导出为一个对象, 用于定义模板的 meta 信息 │ package.json │ README.md │

golang grpc keepalive

只谈情不闲聊 提交于 2021-02-12 09:18:51
最近遇到 grpc 客户端报错 rpc error: code = Unavailable desc = transport is closing ,原因是连接长时间没有使用,被服务端断开,这种情况通过简单粗暴的重试策略可以解决,更加优雅的解决方案是增加保持连接策略 服务端 var kaep = keepalive.EnforcementPolicy{ MinTime: 5 * time.Second, // If a client pings more than once every 5 seconds, terminate the connection PermitWithoutStream: true, // Allow pings even when there are no active streams } var kasp = keepalive.ServerParameters{ MaxConnectionIdle: 15 * time.Second, // If a client is idle for 15 seconds, send a GOAWAY MaxConnectionAge: 30 * time.Second, // If any connection is alive for more than 30 seconds, send a GOAWAY

postman6 在Linux中,body和response字体显示不正常的解决方法

≡放荡痞女 提交于 2021-02-12 09:17:06
在Linux中,postman的body和response使用的默认字体如果没有安装的话,会导致字体和光标的位置不一致,例如字体显示长度只有30,而光标在70的位置,导致编辑困难。 经查找css的定义在 Postman/app/resources/app/js/requester.css 的 .editor.ace_editor 中定义 "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", "Cousine", monospace, monospace; 有两种解决方法: 1。修改css为你的系统内已经安装的字体 直接修改上面的css,或者添加下面代码到 Postman/app/resources/app/html/requester.html 中 .editor.ace_editor { font-family : "Source Code Pro", "Consolas", "PT Mono", "Monaco", "Menlo", "Ubuntu Mono", "Cousine", "monospace" !important } 2。安装字体,我这应该是前两个字体没有安装 http://www.gringod.com/wp-upload/software/Fonts/Monaco_Linux.ttf

什么是Service Mesh?

自作多情 提交于 2021-02-12 08:40:58
<div id="cnblogs_post_body" class="blogpost-body"><p><span style="font-size: 16px;">    转至大佬宋净明的博客:https://jimmysong.io/posts/what-is-a-service-mesh/</span></p> <p><span style="font-size: 16px;">Service mesh 又译作 “服务网格”,作为服务间通信的基础设施层。Buoyant 公司的 CEO Willian Morgan 在他的这篇文章 <a href="https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/">WHAT’S A SERVICE MESH? AND WHY DO I NEED ONE?</a> 中解释了什么是 Service Mesh,为什么云原生应用需要 Service Mesh。</span></p> <p><span style="font-size: 16px;">如 <a href="https://twitter.com/wm">Willian Morgan</a> 所言:A service mesh is a dedicated infrastructure

蚂蚁金服分布式链路跟踪组件 SOFATracer 数据上报机制和源码分析 | 剖析

旧巷老猫 提交于 2021-02-12 08:29:40
SOFA S calable O pen F inancial A rchitecture 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所 需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 TraceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的,这些链路数据可用于故障的快速发现,服务治理等。 本文为《剖析 | SOFATracer 框架》第二篇。《剖析 | SOFATracer 框架》系列由 SOFA 团队和源码爱好者们出品,项目代号:<SOFA:TracerLab/> , 目前领取已经完成,感谢大家的参与。 SOFATracer: https://github.com/alipay/sofa-tracer 0、前言 在《 蚂蚁金服分布式链路跟踪组件 SOFATracer 总览|剖析 》一文中已经对 SOFATracer 进行了概要性的介绍。从对 SOFATracer 的定义可以了解到,SOFATracer 作为一个分布式系统调用跟踪的组件,是通过统一的 TraceId 将调用链路中的各种网络调用情况以数据上报的方式记录下来,以达到透视化网络调用的目的。 本篇将针对SOFATracer的数据上报方式进行详细分析,以帮助大家更好的理解

蚂蚁金服分布式链路跟踪组件 SOFATracer 总览 | 剖析

前提是你 提交于 2021-02-12 08:20:29
2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击 这里 报名届时即可参与大牛互动。 SOFA Scalable Open Financial Architecture 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 TraceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的,这些链路数据可用于故障的快速发现,服务治理等。 本文为《剖析 | SOFATracer 框架》第一篇。《剖析 | SOFATracer 框架》系列由 SOFA 团队和源码爱好者们出品,项目代号: SOFA:TracerLab/ ,文章尾部有参与方式,欢迎同样对源码热情的你加入。 0. 前言 在单体应用时代,我们不需要花费时间去关心调用链路这个东西。 但是链路跟踪不仅仅是在分布式场景下才会有,即使是单体应用,同样也会存在调用链路。 例如,我们把应用中的每个服务接口作为一个链路节点,那么从请求进来到返回响应,把这个过程中多历经的所有的方法接口串联起来,就能组成一条完整的链路,如下图所示: 对于单体应用而言,如果访问一个资源没有成功,那么我们可以很快的锁定是哪一台机器,然后通过查询这台机器上的日志就能定位问题。