摘要: 一个web应用设计进阶 1 设计一个web应用程序,使用socket连接,执行一个具体的请求后,返回结果给连接的用户,再接入另一个socket,继续执行,这是一个串行化的结构,在并发的情况下是不可想象的,每次只能服务一个用户连接,cpu等资源利用率太低了。 { connection = socket 阅读全文
posted @ 2017-10-07 22:42 Hill_Dong 阅读(106) 评论(0) 推荐(0)
摘要: Synchronized是jvm的内部机制,ReentrantLock是并发包中的对象 后者相对于前者有很多好处: synchronized关键字同步的时候,等待的线程将无法控制,只能死等。 解决方式:ReentrantLock可以使用tryLock(timeout, unit)方法去控制等待获得锁 阅读全文
posted @ 2017-10-07 15:25 Hill_Dong 阅读(100) 评论(0) 推荐(0)
摘要: 有一个网友在高并发下使用下面的日期转换工具类时,遇到的问题 public class DateUtil { private DateUtil(){ } private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-M 阅读全文
posted @ 2017-10-07 15:01 Hill_Dong 阅读(1892) 评论(0) 推荐(0)
摘要: 什么是守护线程,什么是非守护线程 用户线程:非守护线程包括常规的用户线程或诸如用于处理GUI事件的事件调度线程,Java虚拟机在它所有非守护线程已经离开后自动离开。 守护线程:守护线程则是用来服务用户线程的,比如说GC线程。如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。 守 阅读全文
posted @ 2017-10-07 11:50 Hill_Dong 阅读(196) 评论(0) 推荐(0)
摘要: 设计并发策略 分析任务需要在哪个线程中执行 任务按照什么样的顺序执行 需要多少个并发执行 在等待队列中,有多少个任务等待执行 如果系统由于过载拒绝一个任务,那么应该拒绝哪个任务,如何通知应用程序,被拒绝的任务 在执行任务之前和之后,我们需要做哪些工作 Executor提供了提交和任务运行解耦,根据需 阅读全文
posted @ 2017-10-07 11:10 Hill_Dong 阅读(121) 评论(0) 推荐(0)