Wesley13 Wesley13
3年前
java多线程之CAS
CAS(CompareandSwap)CAS字面意思为比较并交换.CAS有3个操作数,分别是:内存值M,期望值E,更新值U。当且仅当内存值M和期望值E相等时,将内存值M修改为U,否则什么都不做。1.CAS的应用场景CAS只适用于线程冲突较少的情况。CAS的典型应用场景是:
Stella981 Stella981
3年前
Dubbo 线程池源码解析
本文首发于个人微信公众号《andyqian》,期待你的关注!前言之前文章《Java线程池ThreadPoolExecutor(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI2NDU3OTg5Nw%3
Wesley13 Wesley13
3年前
NIO如何多线程操作
因为NIO本身是非阻塞的,所以他的消息选择器Selector可以在单线程下连接多台客户端的访问。为了加强NIO的性能,我们加入多线程的操作,当然NIO并不能简单的把Selector.select()放入Executor.execute(Runnable)的run方法中。为完成NIO的多线程,我们应该有一个调度类,一个服务类。调度类的目的是初始化一
Wesley13 Wesley13
3年前
Java线程Dump分析工具
jstack用于打印出给定的java进程ID或corefile或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"Jd64",Windows的jstack使用方式只支持以下的这种方式:jstacklFpid如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java
Wesley13 Wesley13
3年前
Java线程同步之一
一、线程同步线程同步是指两个并发执行的线程在同一时间不同时执行某一部分的程序。同步问题在生活中也很常见,就比如在麦当劳点餐,假设只有一个服务员能够提供点餐服务。每个服务员在同一时刻只能接待一个顾客的点餐,那么除了正在接待的顾客,其他人只能等待排队。当一个点餐服务完成之后,其他顾客就可以上去进行点餐。从这个例子中可以看到如下几个关注点:点餐服务
Stella981 Stella981
3年前
Netty学习三:线程模型
1Proactor和ReactorProactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图:!(https://oscimg.oschi
Wesley13 Wesley13
3年前
Java多线程问题(下)
21、FutureTask是什么这个其实前面有提到过,FutureTask表示一个异步运算的任务。FutureTask里面可以传入一个Callable的具体实现类,可以对这个异步运算的任务的结果进行等待获取、判断是否已经完成、取消任务等操作。当然,由于FutureTask也是Runnable接口的实现类,所以FutureTask也可以放入线程池中
Wesley13 Wesley13
3年前
JAVA多线程之ThreadPoolExecutor
ThreadPoolExecutorpublicThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,
Wesley13 Wesley13
3年前
Java线程安全总结
浅谈java内存模型 不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内
Wesley13 Wesley13
3年前
JAVA多线程可见性
  为了更清楚的了解可见性,这里先介绍一下jmm。jmm并非是一个组件或者程序,他是抽象计算机内存模型的一组规则、规范,定义了变量访问内存的方式。!(https://img2018.cnblogs.com/blog/1758811/201908/175881120190820220137162379693173.png)如图:  jmm的