
Java多线程
Mr_Faker
这个作者很懒,什么都没留下…
展开
-
Java多线程和操作系统多线程关系
转载自https://blog.youkuaiyun.com/yangmx_5/article/details/68065299 这篇文章要讨论的是Java编程中的多线程和操作系统中的多线程的区别问题。线程状态。首先两者的线程状态是一样的。(创建、就绪、执行、阻塞、终止),其实这五个状态也是进程的状态。那么Java中的多线程 和 OS中的多线程的区别在哪里?我们先来看下OS中的线程实现...转载 2018-06-16 19:35:38 · 1855 阅读 · 0 评论 -
AQS(多线程访问共享资源的同步器框架)
一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。 以下是本文的目录大...转载 2018-07-02 09:42:09 · 303 阅读 · 0 评论 -
Queue、List
一、非阻塞Queue1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队列: PriorityQueue 和 ConcurrentLinkedQueue PriorityQueue 和 ConcurrentLinkedQueue 类在 Collection Framework 中加入两个具体...转载 2018-07-05 10:32:52 · 393 阅读 · 0 评论 -
常见的进程通信方式
1. 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。2. 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。4. 消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区...转载 2018-07-31 10:38:41 · 921 阅读 · 0 评论 -
ThreadLocal出现OOM内存溢出
一.对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 在上面谈到了对ThreadLocal的一些理解,那我们下面来看一下具体ThreadLocal是如何实现的。 ...转载 2018-07-31 11:10:25 · 1836 阅读 · 2 评论 -
线程池实现原理和使用
一.Java中的ThreadPoolExecutor类 java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。下面我们来看一下ThreadPoolExecutor类的具体实现源码。 在ThreadPoolExecutor类中提供了四个构造方法: 1 2 ...转载 2018-07-31 14:53:07 · 202 阅读 · 0 评论 -
线程的生命周期及状态转换详解
(1)新建状态——(2)就绪状态—((4)阻塞状态)—(3)运行状态——(5)死亡状态 (1)New:创建线程对象后,该线程处于新建状态,此时它不能运行,和其他Java对象一样,仅仅有Java虚拟机为其分配了内存,没有表现出任何线程的动态特征; (2)Runnable:线程对象调用了start()方法后,该线程就进入了就绪状态(也称可运行状态)。处于就绪状态的线程位于可运行池中,此时它只是具...转载 2018-07-31 15:17:26 · 229 阅读 · 0 评论 -
如何破坏单例模式?如何防止?
单例模式的书写这里列出懒汉式的写法/**在多线程下如何保证单例模式需要记住三点。 *第一就是双重加锁机制。 *第二是确保SingleTest为volatile变量。 *第三,是我觉得最容易被遗忘的一点,就是构造函数为private。*/public class SingleTest { public static volatile SingleTest sing...转载 2018-08-20 12:13:35 · 383 阅读 · 0 评论