恢复内容开始 要点: 1.只需回应Get请求,将本地的lena.jpg返回给客户端 2.使用最基本的socket编程 3.使用线程池进行线程管理 4.将lena.jpg读入内存中,减少IO次数 5.MyHttpServer作为服务器类,ServerThread作为服务处理线程类 1.加入线程池 2. ...
分类:
编程语言 时间:
2017-04-29 11:54:09
阅读次数:
172
线程池的好处 1. 降低资源的消耗 通过重复利用已创建的线程降低线程创建和销毁所造成的消耗 2. 提高响应速度 当任务到达时,任务可以不需要等到线程创建就能立即执行 3. 提高线程的可管理型 线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优 ...
分类:
编程语言 时间:
2017-04-14 11:55:04
阅读次数:
126
相关文章目录: Java线程池ThreadPoolExecutor使用和分析(一) Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理 Java线程池ThreadPoolExecutor使用和分析(三) - 终止线程池原理 以下是本文的目录大纲: 一、sh ...
分类:
编程语言 时间:
2017-04-12 11:30:24
阅读次数:
212
线程池的作用: 提供系统效率;如果每个请求到达就创建一个线程,开销是相当大的,服务器创建和销毁线程花费的时间和系统资源都相当大;如果线程数量太多,线程之间的切换也会消耗大量时间和资源。通过对多个任务重复使用线程,那么线程创建和销毁的开销就分摊到了多个任务上,平均每个任务所花费的时间和资源就少了很多。 ...
分类:
编程语言 时间:
2017-04-11 11:17:53
阅读次数:
152
相关文章目录: Java线程池使用和分析(一) Java线程池使用和分析(二) - execute()原理 execute()是 java.util.concurrent.Executor接口中唯一的方法,JDK注释中的描述是“在未来的某一时刻执行命令command”,即向线程池中提交任务,在未来某 ...
分类:
编程语言 时间:
2017-04-09 19:15:53
阅读次数:
411
线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程 为什么要使用线程池 1、减少在创建和销毁线程上所花的时间以及系统资源的开销 2、在一个 JVM 里创建太多的线程可能会导致系统由于过度消耗内存而用完内存或“切换过度”。为了 ...
分类:
编程语言 时间:
2017-04-05 23:06:06
阅读次数:
314
方法1:Java自带的线程池采用Executors的factorymethod创建了固定大小的线程池,采用execute()方法添加RunnableTask。1ExecutorServicethreadPool=Executors.newFixedThreadPool(2);2for(inti=0;i<4;i++)3threadPool.execute(newInnerWork(i+""));4threadPool.shutdown();内..
分类:
编程语言 时间:
2017-04-05 00:07:26
阅读次数:
153
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而 ...
分类:
编程语言 时间:
2017-03-29 13:10:51
阅读次数:
272
1.1需求 数据库300 万条用户数据 ,遍历获取所有用户, 各种组合关联, 获取到一个新的json ,存到redis 上。 1.2 难点 数据库比较多, 不可能单线程查询所有的数据到内存。 1.3解决办法 多线程读取, 生产者 每次获取200 条数据, 消费者去消费。(这里 主要是根据MySQL分 ...
分类:
数据库 时间:
2017-03-22 21:36:10
阅读次数:
434
在做很多高并发应用的时候,单线程的瓶颈已经满足不了我们的需求,此时使用多线程来提高处理速度已经是比较常规的方案了。在使用多线程的时候,我们可以使用线程池来管理我们的线程,至于使用线程池的优点就不多说了。 Java线程池说起来也简单,简单说下继承关系: ThreadPoolExecutor exten ...
分类:
编程语言 时间:
2017-03-20 15:21:39
阅读次数:
167