首页 > concurrent

  关于限流这种机制呢也算是老生常谈了, 毕竟在业务开发中实在是很多地方都会用到。比如第三方接口调用限制、并发访问数控制等…   而具体的限流算法在单机中很容易就可以实现,  在java的世界里既有开源库Guava的RateLimiter,  也有JUC中自带的 Semaphore、BlockingQueue等。拿来随手就可以使用。 &nbs ...

Read more »

阅读全文 »

  CAS:Compare and Swap, 翻译成比较并与交换。   CAS的定义是这样的,看看就好,我也是百度复制的,懒得自己描述了。 CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 。否则,处理器不做任何操作。无论哪种情 ...

Read more »

阅读全文 »

这书怎么说呢,讲的挺浅的,而且主要是无意义的代码片段贴的过多了。 很多知识点比如说书中的synchronized关键字讲解、wait notify等方法讲解,明明梳理知识点讲完就完事了,偏偏要贴几十页代码,有水字数嫌疑。 贴代码也就算了吧,还贴的是eclipse的截图代码,也不知道该说什么。   本来看synchronized关键字的时 ...

Read more »

阅读全文 »

看下这样一段代码: 我在一个方法中建立了个死循环,循环的判断条件为一个boolean类型的成员变量。 然后在main线程中,创建了一个新的名为 “t1” 的线程,去执行这个方法。 等待一秒后,mian线程自身,将该成员变量的值改为false,试图使其不满足条件从而循环终止。 按照正常的逻辑来说,按照脑海中预演的情 ...

Read more »

阅读全文 »

CyclicBarrier这个类的字面意思是循环屏障,跟CountDownLatch有些像,但不一样。关于CountDownLatch我在该爬虫项目中使用过,没有单独的文章进行讲解。 CyclicBarrier跟CountDownLatch的区别是: CountDownLatch只计数1次 CyclicBarrier可以通过reset()重置计数,实现更复杂的业务,也会在其等待完毕释放锁后重置计数。 ...

Read more »

阅读全文 »

在实际业务中进行部分功能的开发时,不可避免的会遇上算数运算、计数等操作。 最典型的表现就是代码中一个又一个的 i++ (或者 num++ 之类的) 、i – – 等自增自减运算。   在普通的应用中当然可以这样。但是如果是一个上线的业务,一定会遇到并发访问的情况。 或许是多个线程(比如web请求)对某一方法中 ...

Read more »

阅读全文 »
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00