Java线程池

简介

什么是线程池

线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。

为什么要用线程池

如果并发请求数量很多,但每个线程执行的时间很短,就会出现频繁的创建和销毁线程。如此一来,会大大降低系统的效率,可能频繁创建和销毁线程的时间、资源开销要大于实际工作的所需。

正是由于这个问题,所以有必要引入线程池。使用 线程池的好处 有以下几点:

  • 降低资源消耗 - 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
  • 提高响应速度 - 当任务到达时,任务可以不需要等到线程创建就能立即执行。
  • 提高线程的可管理性 - 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。
阅读更多

Java并发工具类

JDK 的 java.util.concurrent 包(即 J.U.C)中提供了几个非常有用的并发工具类。

CountDownLatch

字面意思为 递减计数锁。用于控制一个线程等待多个线程

CountDownLatch 维护一个计数器 count,表示需要等待的事件数量。countDown 方法递减计数器,表示有一个事件已经发生。调用 await 方法的线程会一直阻塞直到计数器为零,或者等待中的线程中断,或者等待超时。

阅读更多

Friends-124 The One Where Rachel Finds Out

The One Where Rachel Finds Out

124  瑞秋恍然大悟
乔伊为赚钱去捐精,但当他和新女友——一个果篮制造商——日益情浓,事情变得有点麻烦。
大家一起烧烤为瑞秋庆祝生日,罗斯刚放下生日礼物就急着上路,他说要远赴中国为博物馆取回一块至关重要的(恐龙)骨头。
后来,当瑞秋拆礼物时,钱德不经意的泄露出罗斯对她的爱慕之情;
瑞秋立刻奔向机场想截住罗斯,“我得和他当面谈谈”,却错过了。
罗斯离开之后,她内心激烈交战。 
最后毅然决定对这段感情全力以赴,并满怀期待到机场迎接他的归来。
出乎她意料的是,罗斯在中国的这个星期,居然爱上了另一个女人。

阅读更多

Friends-123 The One With the Birth

The One With the Birth

123  本出世
卡萝即将分娩,六人齐集医院;但卡萝却因为陪苏珊购物而姗姗来迟;
罗斯一见苏珊就剑拔弩张,之后两人又为婴儿的名字争执;双双被卡萝哄出门外;
瑞秋对妇产科医生频送秋波……但该医生患职业病,对女性失去了胃口;
菲比带着吉他到医院唱歌,粉嘟嘟的小孩子,长大憎你老不死,烦得罗斯给她钱买她闭嘴;
菲比、罗斯和苏珊被困在储藏室,菲比给两人上了一课;
乔伊热心帮助一名单亲妈妈丽迪亚生产;当孩子的父亲赶到,温柔的乔伊知趣的离开了;
莫妮卡迫切想要个孩子;钱德安慰她说,如果我们都四十岁还单身,那我们两可以一起生个孩子,但莫妮卡并不领情,还不服气的反问,我哪点看起来像嫁不出去的人。 
婴儿极偶然的得名“班”。

阅读更多

Friends-122 The One With the Ick Factor

The One With the Ick Factor

122  倒人胃口的约会
瑞秋大做春梦——先是和钱德,第二次天梦见和钱德及乔伊(不过大多数时间是后两人在忙乎),第三个梦终于是和罗斯。
菲比想做兼差赚钱,所以给钱德当秘书。 
钱德由此发现同僚们不再像以前那样喜欢他……甚至模仿他讲话的语气取乐。
莫妮卡和二年级生艾森约会,后来方知此君竟然是——高中——二年级生;
她无法接受遂与之分手。
罗斯买了个呼机,以方便卡萝将要分娩时同他联络;

经历多场虚惊之后,他终于收到卡萝的呼叫。

大家赶至医院。

阅读更多

Friends-121 The One With The Fake Monica

The One With The Fake Monica

121  假莫妮卡
莫妮卡的信用卡被盗用;当收到信用卡消费帐单后,她发现小偷过着她梦想要但是又舍不得过的生活。
她在一个用她的卡付帐的舞蹈课上捉到了“假莫妮卡”,
“假莫妮卡”颇富人格魅力,莫妮卡同她不打不相识,居然结成好友。
她假称自己叫莫娜娜,和“假莫妮卡”一起相处甚欢……后来“假莫妮卡”被捕。
罗斯的猴子马赛尔到了发情期,总是搞破坏;罗斯不得不挑选动物园将它送走。
乔伊给自己想了个艺名 Holden McGroin.

阅读更多