java小强的博客

专注于java企业开发技术

线程异常重启

线程的异常处理不能像普通程序一样出现异常后抛出然后由创建并启用该线程的主线程try catch后进行异常处理,而是只能由该子线程自己try catch自己的异常,比如该子线程中连接数据库或者操作文件,会有可能出现IOException或者SQLException等异常,而且这些异常一旦发生,线程就...

2017-08-16 14:33:25

阅读数 1311

评论数 0

Callable和Future

接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。        Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被...

2017-08-14 17:58:43

阅读数 81

评论数 0

使用Semaphore做并发个数控制

Semaphore可以控制某个资源可被同时访问的个数,acquire()获取一个许可,如果没有就等待,而release()释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。 另外重入锁ReentrantLock也可以实现该功能,但实现上代码也要复杂些。   SemaPhor...

2017-08-14 15:14:55

阅读数 147

评论数 0

CountDownLatch用法

CountDownLatch           可以用来在一个线程中等待多个线程完成任务的类;   通常的使用场景是,某个主线程接到一个任务,起了n个子线程去完成,但是主线程需要等待这n个子线程都完成任务了以后才开始执行某个操作     JDK: 一个同步辅助类,在完成一组其他线程执行的操作之前...

2017-08-14 11:31:28

阅读数 121

评论数 0

synchronized 与 Lock 的那点事

最近在做一个监控系统,该系统主要包括对数据实时分析和存储两个部分,由于并发量比较高,所以不可避免的使用到了一些并发的知识。为了实现这些要求,后台使用一个队列作为缓存,对于请求只管往缓存里写数据。同时启动一个线程监听该队列,检测到数据,立即请求调度线程,对数据进行处理。 具体的使用方案就是使用同步保...

2017-08-14 11:11:16

阅读数 93

评论数 0

java高并发必备基础

一、前言 借用Java并发编程实践中的话”编写正确的程序并不容易,而编写正常的并发程序就更难了”,相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作的顺序是不可预期的,本文算是对多线程情况下同步策略的一个简单介绍。 二、 什么是线程安全...

2017-07-14 14:46:29

阅读数 405

评论数 0

java自带线程池种类及好处

什么原因使我们不得不使用线程池? 个人认为主要原因是:短时间内需要处理的任务数量很多 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存 以下是Java自带的几种线程池: 1、newFixed...

2017-07-13 09:42:00

阅读数 191

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭