摘要: 一、join & interrupt 这俩方法属于线程对象里的方法,属于线程本身的操作。 1.1:join方法 用于等待一个线程的终止,等待期间将会阻塞,直到被等待的线程终止结束。 所以join可以用来做多任务异步处理,比如还是拿利用CompletableFuture优化程序的执行效率这篇里的第一个 阅读全文
posted @ 2019-03-13 09:08 是胖虎捏 阅读(709) 评论(0) 推荐(0) 编辑
摘要: SocketChannel可以创建连接TCP服务的客户端,用于为服务发送数据,SocketChannel的写操作和连接操作在非阻塞模式下不会发生阻塞,这篇文章里的客户端采用SocketChannel实现,利用线程池模拟多个客户端并发访问服务端的情景。服务端仍然采用ServerSocket来实现,主要 阅读全文
posted @ 2019-03-08 23:18 是胖虎捏 阅读(882) 评论(0) 推荐(0) 编辑
摘要: 上一篇知道了Buffer的工作机制,以及FileChannel的简单用法,这一篇介绍下 Scatter&Gather 1.Scatter(分散) 用于描述在Channel中读取的数据分散在不同的Buffer里。 接着上一篇的例子(rua文件内容为123456789),改造下代码: readFile 阅读全文
posted @ 2019-03-07 09:21 是胖虎捏 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 上一篇简单介绍了NIO,这一篇将介绍FileChannel结合Buffer的用法,主要介绍Buffer FileChannel的简单使用&Buffer的介绍 一、FileChannel例子 上一篇说到,这个Channel属于文件通道,专门读取文件信息,NIO读取文件内容的简单的例子: public 阅读全文
posted @ 2019-03-05 23:56 是胖虎捏 阅读(1248) 评论(1) 推荐(4) 编辑
摘要: 工作中有些地方用到了netty,netty是一个NIO框架,对于NIO却不是那么熟悉,这个系列的文章是我在学习NIO时的一个记录,也期待自己可以更好的掌握NIO。 一、NIO是什么? 非阻塞式IO,与传统的BIO(阻塞式IO)不同,NIO可以通过通道(Channels)来监听各通道的动作,一个线程就 阅读全文
posted @ 2019-03-05 08:55 是胖虎捏 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 前言:两种模式的相似点与不同点 不得不说,这两种模式真的很像。 相似点:都用到了面向对象的继承、多态、抽象,都拥有相似的结构。 不同点:工厂模式仅提供具体的实例对象,怎么使用这个对象是client的自由,策略模式client可以通过策略类来决定使用哪个实例的哪个方法。 一、两种模式的公共相同部分 下 阅读全文
posted @ 2019-02-27 11:24 是胖虎捏 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 去年看完的《图解java多线程设计模式》,可惜当时没做笔记,导致后来忘了许多东西,打算再温习下这本书,顺便在这里记录一下~ 一、顺序执行、并行、并发 顺序执行:多个操作按照顺序依次执行。 并行:多个任务同时进行,同一时间内可以执行多个任务,这种方式,叫做并行执行,比如多核处理器,多个核可以同时处理多 阅读全文
posted @ 2019-02-26 23:22 是胖虎捏 阅读(3041) 评论(0) 推荐(1) 编辑
摘要: 上一篇:ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 一、基本使用 首先,TTL是用来解决ITL解决不了的问题而诞生的,所以TTL一定是支持父线程的本地变量传递给子线程这种基本操作的,ITL也可以做到,但是前面有讲过,ITL在线程池的模式下,就没办法 阅读全文
posted @ 2019-02-20 22:40 是胖虎捏 阅读(38274) 评论(9) 推荐(10) 编辑
摘要: 上一篇:ThreadLocal系列(一)-ThreadLocal的使用及原理解析 下一篇:ThreadLocal系列(三)-TransmittableThreadLocal的使用及原理解析 一、基本使用 我们继续来看之前写的例子: private static ThreadLocal tl = ne 阅读全文
posted @ 2019-02-19 12:23 是胖虎捏 阅读(9455) 评论(1) 推荐(4) 编辑
摘要: 项目中我们如果想要某个对象在程序运行中的任意位置获取到,就需要借助ThreadLocal来实现,这个对象称作线程的本地变量,下面就介绍下ThreadLocal是如何做到线程内本地变量传递的, 下一篇:ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 一、 阅读全文
posted @ 2019-02-15 11:12 是胖虎捏 阅读(6027) 评论(0) 推荐(3) 编辑
摘要: 借助juc里的ReentrantLock实现一个阻塞队列结构: 以上为主要代码,下面进行简单的测试: 运行结果: 阅读全文
posted @ 2019-02-12 16:44 是胖虎捏 阅读(885) 评论(0) 推荐(0) 编辑