
java并发多线程
好一个大布丁
手游服务器研发工程师。有参与射击类型手游《雷霆战机》。MMO《末日危机》,SLG+ARPG《末日生存》开发经验。现在主要研究全球游戏服务器SLG类型游戏开发。研究分布式和微服务在游戏服务器中的应用。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于Scyther 协议安全模型的验证 协议攻击与演练(web)版本
协议形式化分析Scyther原创 2022-04-10 11:50:25 · 1091 阅读 · 0 评论 -
深入学习理解(9):java:AbstractQueuedSynchronizer详解
导读:前一阵子在写轻量级RPC框架的时候,由于系统中所需要用异步RPC模型,由于系统所要求性能比较苛刻,所以基本所有耗时的操作都会采用异步调用的方式:比如异步读写DB,IO,更可能redis的操作都需要异步(主程说了,我咋办,做呗)。基于Netty的轻量级rpc框架已经开源,想去了解的小伙伴可以查看我另一篇文章。https://blog.csdn.net/baidu_23086307/art...原创 2018-10-01 16:18:25 · 469 阅读 · 0 评论 -
深入学习理解(1):java:ExecutorService invokeAll 任务的批量提交invokeAll两种方法的区别
ExecutorService的invokeAll方法有两种用法:1.exec.invokeAll(tasks)2.exec.invokeAll(tasks, timeout, unit)其中tasks是任务集合,timeout是超时时间,unit是时间单位两者都会堵塞,必须等待所有的任务执行完成后统一返回,一方面内存持有的时间长;另一方面响应性也有一定的影响,毕竟大家都喜欢看看刷刷的执行结果输出,原创 2016-06-23 09:43:31 · 25451 阅读 · 5 评论 -
深入学习理解(7):java:高效的解决死锁问题的线程通讯方式:Semaphore 和 BlockingQueue
经典原始问题:生产者和消费者的问题,其实在实际项目中很容易遇到这样的无奈的问题,但是面对这样的问题的时候我们首先想到的就是多线程批处理,通过notify()…………的处理,但只这样的处理只能给我们贴上对java多线程不熟悉的标签。比较赞的办法是用Semaphore 或者 BlockingQueue来实现生产者消费者模型。下面我们就来看看吧! Semaphore 一个计数信号量。从概念上讲,信号原创 2017-02-23 18:45:48 · 2718 阅读 · 0 评论 -
深入学习理解(3):java:CompletionService解决ExecutorService的submit方法的缺点
在ExecutorService的submit方法中可以获取返回值,通过Future的get方法,但是这个Future类存在缺陷,Future接口调用get()方法取得处理后的返回结果时具有阻塞性,也就是说调用Future的get方法时,任务没有执行完成,则get方法要一直阻塞等到任务完成为止。 这样大大的影响了系统的性能,这就是Future的最大缺点。为此,java1.5以后提供了Complet原创 2016-06-27 17:49:01 · 4361 阅读 · 3 评论 -
深入学习理解(6):java:CountDownLatch详解
今天在公司学习看到了它,翻一番文档,正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点: CountDown原创 2016-11-12 15:33:43 · 7296 阅读 · 4 评论 -
深入学习理解(8):java-ThreadLocal详解
ThreadLocal是什么?有什么用?怎么用? 1。ThreadLocal是什么 带着这样的问题我们来学习一下java并发编程中的一个重要的角色分子ThreadLocal。 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLo原创 2017-02-23 16:05:20 · 6264 阅读 · 8 评论 -
深入学习理解(5):java:并发容器之CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。C转载 2016-10-23 16:56:22 · 481 阅读 · 0 评论 -
深入学习理解(4):java :ExecutorService中submit和execute的区别
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。 一、创建任务任务就是一个实现了Runnable接口的类。 创建的时候实run方法即可。二、执行任务通过java.util.转载 2016-06-27 17:59:07 · 1249 阅读 · 0 评论 -
深入学习理解(2):java 并发学习之ExecutorService
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性 一、创建任务 任务就是一个实现了Runnable接口的类。 创建的时候实run方法即可。 二、执行任务 通过java.转载 2016-06-24 09:33:48 · 1589 阅读 · 0 评论