
多线程
rootkiss
这个作者很懒,什么都没留下…
展开
-
Java 之 JUC:java.util.concurrent
1. JUC 简介在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中的 Collection 实现等;2. volatile 关键字volatile 关键字: 当多个线程进行操作共享数据时,可以保证内存中的...转载 2019-10-14 11:14:04 · 141 阅读 · 0 评论 -
Java的线程池的好处、新建进程池的方法; 线程池满了,往线程池里提交任务会发生什么样的情况,具体分几种情况
Java的线程池的好处进程-线程的简单介绍进程进程是计算机中的程序关于某数据集合的一次运行活动,是系统进行资源分配的调度的基本单位,是操作系统结构的基础。简单来讲:进程是指运行中的应用程序,进程是一个实体,每一个进程都有它自己的地址空间。例如我们点击了QQ,就启动了一个进程,操作系统就会为这个进程分配独立的地址空间,当我们又点击浏览器,这样又启动了一个进程,操作系统将为新的进程分配新的独...转载 2019-09-01 14:21:00 · 4666 阅读 · 1 评论 -
BIO(同步阻塞IO),NIO(同步非阻塞IO),AIO(异步非阻塞IO)——>(同步与异步、阻塞与非阻塞)
熟练掌握 BIO,NIO,AIO 的基本概念以及一些常见问题是你准备面试的过程中不可或缺的一部分,另外这些知识点也是你学习 Netty 的基础。BIO,NIO,AIO 总结1. BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO1.3 代码示例1.4 总结2. NIO (New I/O)2.1 NIO 简介2.2 NIO的特性/NIO与IO...转载 2019-08-31 20:59:33 · 912 阅读 · 0 评论 -
分布式锁
Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等。一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请...转载 2019-09-01 21:00:09 · 251 阅读 · 0 评论 -
公平锁与非公平锁+效率差异原因
一张图读懂非公平锁与公平锁线程的挂起线程的挂起操作实质上就是线程进入"非可执行"状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行。 线程挂起后,可以通过重新唤醒线程来使之恢复运行。cpu分配的线程片非常的短、同时也非常珍贵。线程的挂起可以避免资源的浪费。挂起线程的方法?1、废弃的方法thread.suspend():该方法不会释放线程所暂用的资源。如...转载 2019-09-08 14:28:23 · 3650 阅读 · 1 评论 -
Java中如何终止运行中的线程;while(true){i++;}死循环是如何跳出的
Java中 终止线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。在 Java 中有以下 3 种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。使用stop()方法,已被弃用。原因是:stop()是立即终止,会导致一些数据被到处理一部分就会被终止,而用户并不知道哪些数据被处理,哪些没有被处理,产生了不完整的...转载 2019-09-28 10:29:49 · 20298 阅读 · 0 评论 -
如何判断线程池中所有线程是否执行完毕:shutdown()和awaitTermination()——普通线程用wait()和notify()方法结束和唤醒线程
判断线程池中所有线程是否执行完毕根据线程池中的总线程数目等于完成的线程数目:pool.getTaskCount()和pool.getCompletedTaskCount()public interface Future<V>Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要...转载 2019-09-28 16:49:37 · 3445 阅读 · 0 评论 -
ConcurrentHashMap 和 Hashtable 的区别&&ConcurrentHashMap线程安全的具体实现方式/底层具体实现
ConcurrentHashMap 和 Hashtable 的区别ConcurrentHashMap 和 Hashtable 的区别主要体现在实现线程安全的方式上不同。底层数据结构:JDK1.7的 ConcurrentHashMap 底层采用 分段的数组+链表 实现,JDK1.8 采用的数据结构跟HashMap1.8的结构一样,数组+链表/红黑二叉树。Hashtable 和 JDK1.8 ...原创 2019-09-28 20:05:39 · 387 阅读 · 0 评论 -
Java--缓存热点数据,最近最少使用算法+redis
1、最近最少使用算法LRU (Least recently used,最近最少使用)【实现】:最常见的是使用一个链表保存缓存数据我们将维护的链表设为一个双向链表(即每个节点都有个prev和next),另外需要再多维护一个map,将缓存对象的引用放入map中;1、新数据插入链表头部,并且放入map中2、每当需要使用缓存时,首先通过key到map中查找,命中缓存后将数据移动到链表头部(这个移动...转载 2019-09-28 21:57:20 · 892 阅读 · 0 评论