分享

2 21技术日记

 黄家v少 2019-02-21
线程安全的三要素
原子性 可见性 有序性

synchronized和各种锁可以保证原子性和可见性

volatile可以保证可见性和有序性,也就是防止指令重排


volatile
threadlocal
nio


阻塞和非阻塞
同步和异步

线程同步是有序性,就是sync,就是顺序执行
同步io也是这个意思,
异步io,可以做其他事情


并行
并发

并行,表示两个线程同时做事情。多核才可以


并发,表示一会做这个事情,一会做另一个事情,存在着调度。


concurrenthashmap是分段锁


java阻塞io

你读取数据的时候,你不能干别的

你写入数据的时候也不能干别的。


java nio

NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道。



java nio把数据写入缓冲区就直接完事了,然后监听器监听是否成功即可。。

java nio发送一个读取请求就完事了,然后监听器监听是否成功。。

监听器是不是就是轮询的实现。。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多