Go select 死锁引发的思考】的更多相关文章

Go select 死锁引发的思考 https://mp.weixin.qq.com/s/Ov1FvLsLfSaY8GNzfjfMbg一文引发的延续思考 上文总结 总结一 package main import ( "fmt" ) func main() { ch := make(chan int) go func() { select { case ch <- getVal(1): fmt.Println("in first case") case ch &…
原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID ,) PRIMARY KEY, DT DATETIME ) 每次业务想要获取一个新ID,就执行以下SQL: INSERT INTO TB001(DT) SELECT GETDATE(); SELECT @@IDENTITY 由于这些数据只需保留最近一天的数据,因此建立一个SQL作业来定期删除数据,删除脚本很简单: DELETE TO…
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引发的思考 最近有个需求——记录应用中某些接口被调用的轨迹,说白了,记录下入参.出参等即可. 我选用ApsectJ解决这个问题,前期讨论说在接口层埋点,但这样有个问题,代码侵入比较严重,需要修改每个需要关注的接口实现类.经过一番讨论,决定使用AOP拦截所有这样的接口. 后面又有个新的要求——沙箱环境拦…
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1&sn=ecde4899e96d37849a5f17ac12d03018&scene=0#wechat_redirect 由于业务需要,最近在云上新购买了一批centos7.0的服务器,用脚本批量添加了用户(脚本请见我之前的博客/秘钥认证用户自动控制:http://my.oschina.net/pwd…
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> 28ms 最后以28ms的运行速度告结, 有更好的解法或者减少算法复杂度的博友可以给我发消息也可以评论, 我们一起讨论. 第一次在leetcode解算法题,想来个开门红,先挑选一道简单的题目AC了再说.leetcode对每道题都有一个难度提示,分别是easy,medium,hard 于是在第一页中看到了几道标…
[思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没有很好隔离应用,所以催生了Docker这种虚拟容器的技术, 虽然我现在还没有去掌握Docker,但我已经觉得迫在眉睫需要去学习并好好应用上了. 大概2016年8.9月份我知道了有Docker这种东西,到2017年1月份也只是大致上对它有一些了解和看了有关它技术的开篇的文档. 因为其它如mysql.n…
原文:由<a href = "#" > 引发的思考 前阵子在一个移动项目中,通过 <a href = "#" >  的方式 绑定click 事件来提交一个表单,由于表单信息比较敏感,于是采用的post 同步提交的方式,原本到也没有什么.后来万恶的PM说 “你这个按钮呀,要固定在底部比较好” ,于是乎就通过 position:fixed 固定到底部了.那么,问题来了 , 在ios 下,虚拟键盘是浮在页面上层的,导致的结果是当键盘收起后,浮在最底…
在runtime.h中,你可以通过其中的一个方法来获取实例变量,那就是class_copyIvarList方法,具体的实现如下: - (NSArray *)ivarArray:(Class)cls { unsigned int stuIvarCount = 0; Ivar *ivars = class_copyIvarList(cls, &stuIvarCount); if (stuIvarCount == 0) { return nil; } NSMutableArray *arr = [[N…
由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来了解一下我们天天都在用的emoji,对于开发来说,是一个怎么样的存在. 背景 之前在做一个留言功能时,发现在其中一台安卓5.0的手机上,输入emoji糊掉了,成了如下这样的情况 这是skr啥玩意儿呀,怎么看上去像某白色幼虫. 与是我又试了好几个手机,ios都没有问题,甚至一台安卓机中之霸(安卓4.0…
一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comopser install之后,出现错误信息: [2019-02-25 16:00:33] production.ERROR: Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) {"exception&q…
2018年12月12日18:44:53 一个ScheduledExecutorService启动的Java线程无故挂掉引发的思考 案件现场 不久前,在开发改造公司一个端到端监控日志系统的时候,出现了一个bug:有个扫表写日志的线程无故挂掉. 顺藤摸瓜 我看了很久的代码,都没有想出来有什么地方有逻辑问题.万金油的方法是,重启.当我满心欢喜地认为重启是个好方法的时候,问题又重现了. 我有点无奈地看着自己的代码 本我:堪称完美的逻辑,还有什么地方是我没有注意到的吗? 真我:当然有了,你这个菜鸟,你不知…
背景 近期公司项目中加了一个积分机制,用户登录签到会获取登录积分,但会出现一种现象就是用户登录时会增加双倍积分,然后生成两个积分记录.此为问题  问题分析 项目采用微服务架构,下图为积分机制流程   worker通过分析日志记录从而判断用户当天积分是否增加,进而进行积分增加增添记录或者无操作. 两个worker对积分数据库进行同时写入,造成积分双倍增加的情况,那问题找到了,就是对数据库并发写入的问题. 解决方法,加锁  锁 共享锁 定义:共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个…
Bootstrap-Table 关于客户端模式(由 计算所有页的的总数引发的思考) 昨天群里有小伙伴询问 Bootstrap-Table 有没有计算所有页的总数. [吐槽]★隔壁老王-杭州 @F4NNIU 使用footerFormatter的时候,好像只能统计当前页的值,是否用统计全部数据值的参数? ,footerFormatter: function (data) { ​ var field = this.field; ​ var total_sum = data.reduce(functio…
int.TryParse非预期执行引发的思考   问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Request.QueryString["id"] = null int.TryParse( Request.QueryString["id"], out id ); //使用 id 进行其他操作... 因为Request.QueryString["id"]…
目录 密码验证连续多位相同或者顺序字符引发的思考 需求 思考 实现 总结 参考 密码验证连续多位相同或者顺序字符引发的思考 需求 虽然用户对于这种复杂的密码验证恨之入骨,但是有时出于安全的考虑,我们系统不得不强制要求用户设置更高强度的密码. 如:不能连续出现多位相同或者连续的字符. 思考 对于常规的验证,我们通常使用正则表达式,所以我一开始也从这方面入手,但始终没有一个实现的思路. 后来看到有人用字符数组,通过下标判断是否连续,再加上偶然看到有人在讨论 ASCII 码,灵机一动,结合这两者就是一…
由[].slice.call()引发的思考   经常看到大家用[].slice.call()或者Array.prototype.slice.call():  我一直是一知半解的,今天算是基本弄清楚了,在此记录一下. 可能最常见的是Array.prototype.slice.call(arguments)  就是截取(更重要的是获取,slice是得到子数组)函数的参数,然后让arguments等“伪数组”也可以使用数组的各种方法. 这种写法看上去很是牛逼,然而,一查才发现,ES6已经优雅的实现,毕…
前言 前几天在技术群里看到有同学在讨论关于dynamic是否会存在装箱拆箱的问题,我当时第一想法是"会".至于为啥会有很多人有这种疑问,主要是因为觉得dynamic可能是因为有点特殊,因为它被称为动态类型,可能是因为这里的动态对大家造成的误解,认为这里的动态可以推断出具体的类型,所以可以避免装箱拆箱.但是事实并不是这样,今天就一起就这个问题虽然讨论一下. 装箱拆箱 首先咱们先来看下何为装箱拆箱,这个可以在微软官方文档中Boxing and Unboxing文档中看到答案,咱们就简单的摘…
在前段时间,曾写过一篇关于SQL问题的文章,测试杂谈--一条SQL引发的思考(一). 今天这篇,算是个问题记录吧,问题并不复杂,但对于测试同学而言,确实是个需要关注的点. 问题分析 最近在日常工作中,又遇到一个报错,日志中的具体报错如下: res=500 en**** Server Error,error trace StatementCallback; bad SQL grammar [UPDATE dep SET h = CONCAT('test San'Zhang', substring(…
一.前言 网络编程里一个经典的问题,selec,poll和epoll的区别?这个问题刚学习编程时就接触了,当时看了材料很不明白,许多概念和思想没有体会,现在在这个阶段,再重新回头看这个问题,有一种豁然开朗的感觉, 把目前我所能理解到的记录下来. 参考资料:https://www.cnblogs.com/zingp/p/6863170.html http://blog.csdn.net/a837199685/article/details/45954349 https://www.zhihu.co…
  ×   缘起---闲逛博客园 前几天的时候,在某一QQ群看到一条消息“XXX酒店开房XXXBTXX迅雷BT下载”,当时是一目十行的心态浏览,目光掠过时, 第一反应我想多了~以为是XX种子(你懂的~),但并不感兴趣. 直到又回到博客园逛时,看到一篇最多评论的文章: 看看多线程的效率有多差劲! - 张浩华 - 博客园 http://www.cnblogs.com/zhhh/p/3385751.html 于是点击进去了.这时,我才回想起来,当时是自己邪想多了...... 原来是2000w条开房数据…
ROC曲线 在网上有很多地方都有说ROC曲线对于正负样本比例不敏感,即正负样本比例的变化不会改变ROC曲线.但是对于PR曲线就不一样了.PR曲线会随着正负样本比例的变化而变化.但是没有一个有十分具体和严谨地对此做出过分析和论证(至少我没有找到). 此处记为结论1: 结论1:PR曲线会随着正负样本比例的变化而变化:但是ROC曲线不会. 此处我就这一问题进行了详细的分析论证,并在这个过程中引发了很多思考. 首先,如何分析这个问题呢? 看下ROC曲线是由TPR和FPR组成的 下面我们这样来分析这个问题…
假设有一个表,结构如下: root::> create table t1 ( -> id int unsigned not null auto_increment, ', -> primary key (id) -> )engine=myisam; Query OK, rows affected (0.00 sec) root::> 改表中有6条记录,如下: root::> select * from t1; +----+-----+ | id | id2 | +---…
前言 近期在开发远洋的SOA系统平台,开发使用的是.NET平台.对于Asp.net并不困难,但该系统的开发并非全然依靠Asp.net.而是自身封装好的框架.这套框架是远洋地产购买的微软的开发平台,项目投资巨大.开发者众多. 对于使用Asp.net开发已经相当的熟悉,假设直接使用Asp.net开发平台的话相信非常easy就行上手,但世事并非我们想象的那么简单,这次远洋地产代号为海鸥2号的平台开发使用了微软的MVC框架,并且在开发时採用的是SOA,面向服务框架的程序设计.它是基于面向对象的但又不是全…
https://mp.weixin.qq.com/s/1VP7l9iuId_ViP1Z_vCA-w 某天早上,毛老师在群里问「cat 上怎么看 gc」. 好好的一个群 看到有 GC 的问题,立马做出小鸡搓手状. 之后毛老师发来一张图. 老年代内存占用情况 图片展示了老年代内存占用情况. 第一个大陡坡是应用发布,老年代内存占比下降,很正常. 第二个小陡坡,老年代内存占用突然下降,应该是发生了老年代 GC. 但奇怪的是,此时老年代内存占用并不高,发生 GC 并不是正常现象. 于是,毛老师查看了 GC…
这几天AlphaGO的人机大战炒得热火朝天,给谷歌的AI做了一次大大的广告,可谓风头出尽,大有AI战胜一切的“趋势”.而且,像阿法狗.阿法猫之类的新词不断,成了饭前茶后人们议论的热点.作为一个留学过日本的理工男,我也用战胜机器的发散思维理解一下这个热点,供所有程序员们思考. 首先,看看网友们的经典语句: 1.如果说我下棋比别人更厉害些,那是因为我站在了人类的肩膀上. 2.天才,是99%的模拟复盘,加1%的深度学习. 3.你见过洛杉矶凌晨四点的机房吗? 4.下自己的棋,让别人说去. 5.给我一台W…
最近公司做了一个千万数量级的项目,由于要求性能比较高,每一个相对慢的查询都需要优化,项目经理是一个比较有经验的开发人员,基本上遇到问题都会先自行处理:或自己分析原因或网络寻求帮助. 但是项目平稳运行一个多月后,他突然说有个SQL.怎么也不走索引,索引怎么建都不走,他查找了网络上可以找到的原因,都无法解决,最后找到我这个兼职dba. 我接到问题也是一脸懵逼,MySQL数据库,是一个表连接的SQL,查询条件列有索引,执行计划中显示索引不使用,强制使用索引也无效.多方面研究发现现象是,单表查询索引列判…
What number should I guess next ? 这篇文章的灵感来源于最近技术部的团建与著名的DP优化<鹰蛋>.记得在一个月前,查到鹰蛋的题解前,我在与同学讨论时,一直试图寻找一种固定的模式来决策.但是,却总存在更理想的方案.在此,我想以团建的游戏作为背景,系统(sui bian)地描述和分析在这些决策模式. 又或者说,我想试着介绍的是: THE FUN OF DECISION 思维游戏与决策的魅力 本文前半部分的受众可以是没接触过OI但是学过高中数学的.正在或想要接触计算机…
前言   Insert into select请慎用.这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份.本想通过程序先查询查出来然后批量插入.但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现.通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了.然后他就被开除了. 事故发生的经过.   由于数据数据库中order_today数据量过大,…
这是一篇发牢骚的文章,可以这么说吧.DAOHelper究竟有什么用呢?用我自己的话去理解,DAOHelper的存在正是敏捷开发的产物,即快速开发. 我们究竟能从项目中学到什么呢?有的人可能会说,从一个项目中,你可以学到很多东西,比如你可以学习Nhibinate,Entity Framework 等ORM框架,还可以学习到LINQ 2 SQL等技术,但是,一个DAOHelper就能毁掉你的梦想.我们不妨来看看下面的一些代码. using System; using System.Collectio…
一.现状说明: 就在这金三银四的求职黄金时期,我有幸作为公司的独立技术面试官,拥有最终决定录用权,在倍受上级领导的充分信任下,我也向上级保证,一定要为公司找到合适的人才,就在我满怀信心的情况下面试了一个又一个的求职者,发现了大多数求职者共同的问题,一是:眼高手低,即工作年限虽长,但受工作内容及个人原因,基础知识薄弱,很多技术使用了N年,却不明白其原理,可以说是:只知道这样用,但为什么要这样用,能否有别的解决方案从来都没有去考虑过或总结过,知识的广度就更不用说了,薪资期望却都很高.二是:B/S与C…