上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 46 下一页
摘要: 平时我们在用多线程开发的时候少不了Task,确实task给我们带来了巨大的编程效率,在Task底层有一个TaskScheduler,它决定了task该如何被调度,而 在.net framework中有两种系统定义Scheduler,第一个是Task默认的ThreadPoolTaskScheduler 阅读全文
posted @ 2017-04-28 14:46 一线码农 阅读(17569) 评论(10) 推荐(42)
摘要: 说起Parallel.For大家都不会陌生,很简单,不就是一个提供并行功能的for循环吗? 或许大家平时使用到的差不多就是其中最简单的那个重载方法,而真实情况 下Parallel.For里面有14个重载,而其中那些比较复杂的重载方法,或许还有同学还不知道怎么用呢~~~ 刚好我最近我有应用场景了,给大 阅读全文
posted @ 2017-03-23 13:05 一线码农 阅读(8133) 评论(6) 推荐(11)
摘要: 一般我们发布项目的时候通常都会采用release版本,因为release会在jit层面对我们的il代码进行了优化,比如在迭代和内存操作的性能提升方面,废话不多说, 我先用一个简单的“冒泡排序”体验下release和debug下面的性能差距。 一:release带来的闪光点【冒泡排序】 这个是我多年前 阅读全文
posted @ 2017-03-20 09:37 一线码农 阅读(5201) 评论(20) 推荐(14)
摘要: 最近在看一个同事的代码,代码的本意是在main方法中开启10个线程,用这10个线程来处理一批业务逻辑,在某一时刻当你命令console退出的时候,这个 时候不是立即让console退出,而是需要等待10个线程把检测状态之后的业务逻辑执行完之后再退出,这样做是有道理的,如果强行退出会有可能造成子线程的 阅读全文
posted @ 2017-03-13 09:26 一线码农 阅读(6389) 评论(23) 推荐(28)
摘要: 一:现实场景 有时候在开发的过程中,我们经常会根据某个状态的值,写出很多的ifelse逻辑,比如拿项目里面的案例来说,如果当前发送的是彩信,此种状态需要如何给 实体赋值,如果是短信,邮件又是其他方式的赋值,等等此类,这种情况下一般会写出如下if判断,对吧,真实代码如下: 上面的代码还是非常简单明了的 阅读全文
posted @ 2017-02-22 15:46 一线码农 阅读(5176) 评论(11) 推荐(10)
摘要: 一:实际场景介绍 我们在给用户做订单催付通知的时候,会有这样的一种场景,用户在系统后台设置一组可以催付的规则,比如说订单金额大于xx元,非黑名单用户,来自 哪个地区,已购买过某个商品,指定某个营销活动的人等等这样的条件,如果这时用户在淘宝上下了一个订单,那程序要判断的就是看一下此订单是否满足这 些规 阅读全文
posted @ 2017-02-19 11:52 一线码农 阅读(7503) 评论(7) 推荐(6)
摘要: 有时候因为种种原因导致我们会写出很多丑陋的代码,比如赶工时,短暂性的偷懒,不会设计模式等等导致代码沉积,一个cs上万行代码这样场景是有发生, 当然这里也包括我。。。所以时间充裕一点之后就想重构一下,毕竟项目中的需求是不断变更的,面对需求变更,尽量做到最低限度的修改代码,最大化的扩充 新代码,还有一点 阅读全文
posted @ 2017-01-24 18:07 一线码农 阅读(8802) 评论(10) 推荐(9)
摘要: 在redis的官网上洋洋洒洒的大概提供了200多个命令,貌似看起来很多,但是这些都是别人预先给你定义好的,但你却不能按照自己的意图进行定制, 所以是不是感觉自己还是有一种被束缚的感觉,有这个感觉就对了。。。 一:Lua脚本 说来也巧,redis的大老板给了你解决这种问题的方法,那就是Lua脚本,而且 阅读全文
posted @ 2016-12-28 17:00 一线码农 阅读(74733) 评论(13) 推荐(23)
摘要: 前段时间在做用户画像的时候,遇到了这样的一个问题,记录某一个商品的用户购买群,刚好这种需求就可以用到Redis中的Set,key作为productID,value 就是具体的customerid集合,后续的话,我就可以通过productid来查看该customerid是否买了此商品,如果购买了,就可 阅读全文
posted @ 2016-12-22 18:26 一线码农 阅读(70332) 评论(23) 推荐(18)
摘要: 玩过redis的朋友都知道,redis中有一个叫做redis-cli的小工具,我们可以利用它在test和develop环境下进行高效的模拟测试,然而在现实环境中, 我们只知道直接键入redis-cli启动命令的交互式,而这个对redis-cli来说绝对是九牛一毛,下面我逐一给大家演示下。 一:非RE 阅读全文
posted @ 2016-12-11 16:39 一线码农 阅读(7831) 评论(2) 推荐(3)
摘要: 我们知道rabbitmq是一个专业的MQ产品,而且它也是一个严格遵守AMQP协议的玩意,但是要想骚,一定需要拿出高可用的东西出来,这不本篇就跟大家说 一下cluster的概念,rabbitmq是erlang写的一个成品,所以知道如何构建erlang的node集群就ok了,他需要一个统一的cookie 阅读全文
posted @ 2016-11-29 15:44 一线码农 阅读(8476) 评论(37) 推荐(31)
摘要: 说到队列的话,大家一定不会陌生,但是扯到优先级队列的话,还是有一部分同学是不清楚的,可能是不知道怎么去实现吧,其实呢,,,这东西已 经烂大街了。。。很简单,用“堆”去实现的,在我们系统中有一个订单催付的场景,我们客户的客户在tmall,taobao下的订单,taobao会及时将订单推送给 我们,如果 阅读全文
posted @ 2016-11-04 10:00 一线码农 阅读(18560) 评论(3) 推荐(13)
摘要: 我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis, 当然还有重量级的专业产品rabbitmq,rabbitmq好就好在是用erlang(二郎神)开发的,它那天生的OTP并行计算框架,轻而易举的进程间通讯,我都恨 不 阅读全文
posted @ 2016-10-28 09:46 一线码农 阅读(5437) 评论(17) 推荐(12)
摘要: 大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自己缺乏好的工具去监控sql,本篇给大家介绍的三种监控手段Log和SqlServer profile, 阅读全文
posted @ 2016-09-27 08:35 一线码农 阅读(11154) 评论(10) 推荐(36)
摘要: 上一篇博文中我们快速的介绍了dapper的一些基本CURD操作,也是我们manipulate db不可或缺的最小单元,这一篇我们介绍下相对复杂 一点的操作,源码分析暂时就不在这里介绍了。 一:table sql 为了方便,这里我们生成两个表,一个Users,一个Product,sql如下: <1> 阅读全文
posted @ 2016-09-02 09:54 一线码农 阅读(28053) 评论(17) 推荐(29)
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 46 下一页