多线程
luwfls
这个作者很懒,什么都没留下…
展开
-
Java并发编程实战 之 结构化并发应用程序
结构化并发应用程序至此,第一部分已经学习完毕,从此篇开始,将进行本书第二部分的学习在线程中执行任务 将一个复杂的任务拆分为多个任务,并为每个任务开启一个线程。 需要确定任务边界 理想状态下,任务之间是相互独立的。 例如大多数服务器应用程序,以用户请求为任务边界,每个请求之间互不影响。 串行的执行任务 模拟一个接受用户请求的服务器 假设有一万个请求,而我们的服务器,socket.accept(),每原创 2017-03-23 21:11:46 · 402 阅读 · 0 评论 -
锁优化的思路和方法
参见更好的整理Java中的锁代码及虚拟机配置级别锁优化减少锁持有的时间 同步方法细化为同步代码块 减小锁粒度ConcurrentHashMap实现好处 将大对象拆分为小对象,增大并行度,降低锁竞争。 偏向锁、轻量级锁成功率高。 锁分离 ReadWriteLock 读写分离,读锁之间不会相互阻塞。 联想forkjoin线程池的工作偷取机制 LinkedBlockingQueue实现 Java并发集合原创 2017-04-17 21:25:21 · 773 阅读 · 0 评论 -
Java并发编程实战 之 线程的取消与关闭
任务取消场景 用户手动取消。 线程超时。 线程提前结束,已经得到结果。 发生错误。 主线程关闭。 java没有抢占式的线程停止方式,必须依靠线程本身与外部状态通过协作式的方式停止。 线程中断 通过设置状态位,并在某些方法中去检查这个状态位,但是这些可以响应中断状态的方法,可能被阻塞,例如调用BlockingQueue的put方法。 中断方法 每个线程都由一个静态的中断状态位,interrupt。 i原创 2017-04-20 20:00:40 · 351 阅读 · 0 评论 -
JAVA多线程、高并发梳理
首先从概念上讲:JAVA 多线程,高并发。 为什么是多线程而不是单线程 思考一下Servlet容器,会同时有多个用户访问,如果是单线程的话,只有一个服务线程来处理多个用户的请求,这样的服务器响应会特别差。 为什么多线程之间是并发执行,而不是并行执行 从CPU的角度讲,单线程在获得CPU的执行权期间,如果因为I/O或等待其他资源比如数据库连接,而浪费CPU资源。关于高并发,是让多个线程之间共享CP原创 2017-05-31 09:51:36 · 615 阅读 · 0 评论