
多线程高并发学习笔记
文章平均质量分 91
lordky
不甘心现在,那就得努力,少刷抖音小说多学习拓展新技能
展开
-
详述NIO相关组件_Channel、Buffer、Selctor
(一)Channel channel(通道)是Java NIO相关组件之一。Channel表示IO源与目标打开的连接,我们既可以从通道中读取数据,又可以写数据到通道中。以下是常见的几个Channel FileChannel 从文件中读写数据 DataGramChannel 通过UDP读写网络中的数据 SocketChannel 通过TCP读写网络中的数据 ServerSocketChannel 可以监听新进来的TCP链接,对每一个新进来的链接都会创建一个socketChannel (二)Buffer原创 2022-05-01 15:03:43 · 212 阅读 · 0 评论 -
多线程高并发学习笔记之关于join()的胡思乱想
引子:在做一道题的时候引发的思考,这道题是这样的:实现一个容器,提供两个方法,add,size写两个线程,线程1添加10个元素到容器中,线程2实现监控元素得个数,当个数到5个时,线程2给出提示并结束 答案有多种,比如说用wait()、notify()来实现,LockSupport的park()、unpark()来实现,其中有一种解题的思路是采用Semaphore来实现。但是Semaphore,re...原创 2020-04-22 15:24:07 · 299 阅读 · 0 评论 -
多线程高并发学习笔记之volatile
什么是volatile? volatile是一个特征修饰符(type specifier).volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 volatile有什么作用? 1.保证线程可见性 2.禁止指令重排序 由此引发的问题,什么叫线程的可见性? 我们知道所有的线程共享主内存,而每一个线程都有自己的工作内存,当一个线程需要对一个变量进行操作的时候...原创 2020-04-11 18:13:58 · 179 阅读 · 0 评论