java多线程
文章平均质量分 86
韭菜炒鸡蛋2021
这个作者很懒,什么都没留下…
展开
-
操作系统中进程、线程、并行并发基本概念
进程的概念及组成概念:进程是指在系统中能独立运行并作为资源分配的基本单位(++进程是资源分配的基本单位,例如jvm进程初始化,需要指定堆栈内存++),它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程间可以并发执行和交换信息。一个进程在运行时需要一定的资源,如CPU、存储空间及I/O设备等组成:进程标识符:它是惟一的标志对应进程的一个标志符或数字...原创 2018-08-23 14:28:01 · 445 阅读 · 0 评论 -
2、大白话分析BIO,NIO,AIO
章节概览Netty源码分析章节概览1、概述上一篇文章一分钟弄懂同步,异步,阻塞,非阻塞简单的了解了下同步,异步,阻塞,非阻塞的概念。那么在java的网络编程中,这些不同的IO状态又是怎么规划的呢。为了深入的理解这个问题。我们参考了《Netty 权威指南》 部分章节进行详细说明。深入理解不同的IO网络流的情况。同时进一步分析下BIO的原理。2、Linux网络模型简介Linux的内核将所有...原创 2018-12-17 14:02:05 · 2639 阅读 · 0 评论 -
Java多线程之ReentrantReadWriteLock实现原理和源码分析(七)
章节概览、Java多线程之章节概览原创 2018-11-28 16:37:58 · 676 阅读 · 0 评论 -
Java多线程之CountDownLatch实现原理和源码分析(八)
章节概览:Java多线程之章节概览1、概述CountDownLatch是一个用来控制并发的很常见的工具,它允许一个或者多个线程等待其他的线程执行完其操作。比如我需要统计多篇文章中出现不同单词的数量,我们会为每篇文章分配一个线程进行统计,统计完成之后,会保存一个单词统计列表。等所有的统计线程都执行完成以后,对这些统计出来的结果用一个线程去汇总,这就可以使用CountDownLatch。...原创 2018-11-29 15:37:57 · 608 阅读 · 0 评论 -
Java多线程之ThreadPoolExecutor实现原理和源码分析(五)
章节概览、Java多线程之章节概览原创 2018-11-14 10:31:02 · 505 阅读 · 0 评论 -
Java多线程之Future实现原理和源码分析(六)
章节概览、Java多线程之章节概览原创 2018-11-15 18:02:48 · 2131 阅读 · 2 评论 -
Java多线程之章节概览
目录:Java多线程之线程概述(一)Java多线程之ReentrantLock实现原理和源码分析(二)Java多线程之AQS(AbstractQueuedSynchronizer )实现原理和源码分析(三)...原创 2018-11-08 14:53:40 · 500 阅读 · 0 评论 -
Java多线程之AQS(AbstractQueuedSynchronizer )实现原理和源码分析(三)
HelloWorld原创 2018-11-08 11:25:02 · 1638 阅读 · 0 评论 -
Java多线程之Condition实现原理和源码分析(四)
1、回顾Java多线程之线程概述(一)Java多线程之ReentrantLock实现原理和源码分析(二)Java多线程之AQS(AbstractQueuedSynchronizer )实现原理和源码分析(三)...原创 2018-11-09 16:56:16 · 406 阅读 · 0 评论 -
Java多线程之线程概述(一)
cas原理原创 2018-11-06 16:57:12 · 336 阅读 · 0 评论 -
Java多线程之ReentrantLock实现原理和源码分析(二)
1、ReentrantLock概述ReentrantLock字面含义是可重入的互斥锁,实现了和synchronize关键字一样的独占锁功能。但是ReentrantLock使用的是自旋锁,通过CAS硬件原语指令实现的轻量级的锁,不会引起上下文切换。而Synchronize关键字是重量级的且是独占的悲观锁。在使用过程中,会引起上下文切换。同时ReentrantLock增加了一些高级的扩展功能,比如它...原创 2018-11-06 16:56:45 · 640 阅读 · 0 评论 -
java线程间通信wait,notify/notifyAll
1.概述Java所有的类都继承Object对象。Object对象有以下常用方法:// 克隆当前对象protected Object clone() // 判断对象内存空间地址是否相同boolean equals(Object obj) // 显示调用对象清理protected void finalize()// 获取当前对象的Class对象,可以获取方法区里类的元数据信息...原创 2018-08-24 17:50:35 · 259 阅读 · 0 评论 -
可重入锁:ReentrantLock理解使用
(一)可重入性可重入性描述这样的一个问题:一个线程在持有一个锁的时候,它内部能否再次(多次)申请该锁。如果一个线程已经获得了锁,其内部还可以多次申请该锁成功。那么我们就称该锁为可重入锁。通过以下伪代码说明:void methodA(){ lock.lock(); // 获取锁 methodB(); lock.unlock() // 释放锁}void met...原创 2018-08-28 11:16:32 · 23335 阅读 · 1 评论 -
线程安全之volatile
概述:Volatile是java提供的一种同步的手段,只不过它是轻量级的同步,为什么这么说,因为volatile只能保证多线程的内存可见性,不能保证多线程的原子操作。运用场景: 1. 运算结果并不依赖变量的当前的值,或者能够确保只有单一线程修改改变量的值 1. 该变量没有包含在具体的其他变量的变式中其实就是这个变量只提供读属性,不具备写和后期计算属性,只能读取,不能具体到业务中使用...原创 2018-08-23 16:53:32 · 260 阅读 · 0 评论 -
Java安全线程判断
1. 概述通俗的讲,java多线程本质上就是管理状态的访问,而通常来讲这些状态是:共享的,可变的状态 状态 : 一个对象的状态就是它的数据,存储在状态变量中。比如他的实例域和静态域。 共享: 是指一个变量可以被多个线程进行访问。 可变: 变量的值在其生命周期内是可以被其他线程改变的 无论何时,只要多余一个的线程访问给定的状态变量,而且摸个线程会写入改变量,时需要有必须需要用协调线程...原创 2018-08-23 15:55:16 · 1193 阅读 · 0 评论 -
JVM线程模型详解
1 jvm内存模型在描述jvm线程模型之前,我们先深入的理解下,jvm内存模型。在jvm1.8之前,jvm的逻辑结构和物理结构是对应的。即Jvm在初始化的时候,会为堆(heap),栈(stack),元数据区(matespace)分配指定的内存大小,Jvm线程启动的时候会向服务器申请指定的内存地址空间进行分配。在jdk1.8之后,使用了G1垃圾回收器,逻辑上依然存在堆,栈,元数据区。但是在物理结...原创 2018-08-23 15:04:05 · 11292 阅读 · 5 评论 -
Java Thread类源码详解
概述Java所有多线程的实现,均通过封装Thread类实现,所以深入Thread类,对深入理解java多线程很有必要构造函数:Thread的构造函数,采用缺省的方式实现://传入Runnable接口实现Thread(Runnable target)//传入Runnable接口实现,传入线程名Thread(Runnable target, String name...原创 2018-08-23 14:51:18 · 9478 阅读 · 6 评论 -
java多线程3种实现方式
java多线程的实现方式1.继承Thread类重写run()方法public class JavaThread01 extends Thread { @Override public void run() { System.out.println("Hello Thread01"); } public static void ma...原创 2018-08-23 14:44:59 · 184 阅读 · 0 评论 -
3、Java网络编程之深入理解BIO原理和实现
章节概览Netty源码分析章节概览1、概述关于网络方面的知识,这里不再赘述。可以看七层网络模型,TCP/IP协议,三次握手,四次挥手等网络编程方面的知识。本章节主要结合Java BIO 讲解BIO编程的原理和过程。1.1、七层网络协议1.2、 五层网络协议2、socket发送和接受数据过程发送过程:应用程序调用系统调用,将数据发送给socketsocket检查数据...原创 2018-12-17 17:22:14 · 1680 阅读 · 0 评论