编程
文章平均质量分 70
nicajonh
编程,学习两大乐事
展开
-
关于lua垃圾回收器的理解
Lua使用基于被内置在Lua某些算法的垃圾收集自动内存管理。可以自动内存管理的结果,作为一个开发者:没有必要担心的对象分配内存。无需释放他们时,不再需要可将其设置为nil。Lua使用运行不时收集死的对象时,不再从Lua程序中访问垃圾收集器。所有对象,包括表,用户数据,函数,线程,字符串等受自动内存管理。 Lua使用增量标记和使用两个数字来控制其垃圾回收周期即垃圾收集转载 2017-09-05 11:14:34 · 290 阅读 · 0 评论 -
celery深入配置
celery深入配置 celery的官方文档其实相对还是写的很不错的.但是在一些深层次的使用上面却显得杂乱甚至就没有某些方面的介绍, 通过我的一个测试环境的settings.py来说明一些使用celery的技巧和解决办法amqp交换类型 其实一共有4种交换类型,还有默认类型和自定义类型. 但是对我们配置队列只会用到其中之三,我来一个个说明,英语好的话可以直接去转载 2017-09-08 10:37:02 · 1534 阅读 · 0 评论 -
详解正则表达式中的\B和\b
对于正则表达式的中\B和\b 有些地方会出现弄清楚的情况或许你看了下面这篇博客 你就能够对\B和\b认识加深了根据查看API可以知道 \B和\b都是边界匹配符先说说\b这个单词边界吧!竟然想了解 首先必须清楚什么叫单词边界!我们可以以\b为分割来探究一下单词边界import java.util.regex.Matcher;import java.util.regex.P...转载 2017-12-15 18:45:21 · 28085 阅读 · 3 评论 -
悲观锁与乐观锁
什么场景下需要使用锁?在多节点部署或者多线程执行时,同一个时间可能有多个线程更新相同数据,产生冲突,这就是并发问题。这样的情况下会出现以下问题:更新丢失:一个事务更新数据后,被另一个更新数据的事务覆盖。脏读:一个事务读取另一个事物为提交的数据,即为脏读。其次还有幻读。。针对并发引入并发控制机制,即加锁。加锁的目的是在同一个时间只有一个事务在更新数据,通过锁独占数据的修改权。锁的实现方式 ...转载 2018-04-02 09:53:05 · 121 阅读 · 0 评论 -
理解CAS
CAS(Compare and Swap) 硬件同步原 对于常用多线程编程的人估计知道,对于一般人估计都不曾听说。在jdk5之前,我们知道,在多线程编程的时候,为了保证多个线程对一个对象同时进行访问时,我们需要加同步锁synchronized,保证对象的在使用时的正确性,但是加锁的机制会导致如下几个问题 1.加多线程竞争下,加锁和释放锁会导致较多的上下文切换,引起性能问题。 ...转载 2018-04-02 09:57:00 · 184 阅读 · 0 评论