• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

标签:多线程

Java技术

多线程之间通讯

多线程之间通讯
1. 什么是多线程之间通讯? 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。 画图演示 2. 多线程之间通讯需求 需求:第一个线程写入(input)用户,另一个线程取读取(out)用户.实现读一个,写一个操作。 代码示例 class Res { public String userSex; public String……继续阅读 »

winrains 3个月前 (03-31) 18浏览 0个赞

Java技术

多线程基础

多线程基础
1 线程与进程区别 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。 使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能……继续阅读 »

winrains 3个月前 (03-31) 19浏览 0个赞

Java技术

Java并发指南(1):并发基础与Java多线程

Java并发指南(1):并发基础与Java多线程
该系列博文会告诉你如何全面深入地学习Java并发技术,从Java多线程基础,再到并发编程的基础知识,从Java并发包的入门和实战,再到JUC的源码剖析,一步步地学习Java并发编程,并上手进行实战,以便让你更完整地了解整个Java并发编程知识体系,形成自己的知识框架。 为了更好地总结和检验你的学习成果,本系列文章也会提供一些对应的面试题以及参考答案。 如果……继续阅读 »

winrains 8个月前 (11-10) 19浏览 0个赞

Java技术

从ConcurrentHashMap的演进看Java多线程核心技术

从ConcurrentHashMap的演进看Java多线程核心技术
线程不安全的HashMap 众所周知,HashMap是非线程安全的。而HashMap的线程不安全主要体现在resize时的死循环及使用迭代器时的fast-fail上。 注:本章的代码均基于JDK 1.7.0_67 HashMap工作原理 HashMap数据结构 常用的底层数据结构主要有数组和链表。数组存储区间连续,占用内存较多,寻址容易,插入和删除困难。链表……继续阅读 »

winrains 9个月前 (10-30) 23浏览 0个赞

Java技术

Java 线程间通信剖析

Java 线程间通信剖析
CountDownLatch CountDownLatch适用场景 Java多线程编程中经常会碰到这样一种场景——某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行。比如开发一个并发测试工具时,主线程需要等到所有测试线程均执行完成再开始统计总共耗费的时间,此时可以通过CountDownLatch轻松实现。 CountDownLatch实例 ……继续阅读 »

winrains 9个月前 (10-30) 20浏览 0个赞

Java技术

Java 多线程开发关键技术

Java 多线程开发关键技术
sleep和wait到底什么区别 其实这个问题应该这么问——sleep和wait有什么相同点。因为这两个方法除了都能让当前线程暂停执行完,几乎没有其它相同点。 wait方法是Object类的方法,这意味着所有的Java类都可以调用该方法。sleep方法是Thread类的静态方法。 wait是在当前线程持有wait对象锁的情况下,暂时放弃锁,并让出CPU资源,……继续阅读 »

winrains 9个月前 (10-30) 19浏览 0个赞

Java技术

深入理解多线程(一):Synchronized的实现原理

深入理解多线程(一):Synchronized的实现原理
synchronized,是Java中用于解决并发情况下数据同步访问的一个很重要的关键字。当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized关键字对类或者对象加锁。那么,本文来介绍一下synchronized关键字的实现原理是什么。在阅读本文之间,建议先看下Java虚拟机是如何执行线程同步的 。 反编译 ……继续阅读 »

winrains 11个月前 (08-30) 22浏览 0个赞

Java技术

深入理解多线程(二):Java的对象模型

深入理解多线程(二):Java的对象模型
上一篇文章中简单介绍过synchronized关键字的方式,其中,同步代码块使用monitorenter和monitorexit两个指令实现,同步方法使用ACC_SYNCHRONIZED标记符实现。后面几篇文章会从JVM源码的角度更加深入,层层剥开synchronized的面纱。在进入正题之前,肯定有些基础知识需要铺垫,那么先来看一下一个容易被忽略的但是又很……继续阅读 »

winrains 11个月前 (08-30) 22浏览 0个赞

Java技术

深入理解多线程(三):Java的对象头

深入理解多线程(三):Java的对象头
上一篇文章中我们从HotSpot的源码入手,介绍了Java的对象模型。这一篇文章在上一篇文章的基础上再来介绍一下Java的对象头。主要介绍一下对象头的作用,结构以及他和锁的关系。 Java对象模型回顾与勘误 在上一篇文章中,关于对象头的部分描述有误,我已经在我博客的文章中就行修正 。这里再重新表述一下。 每一个Java类,在被JVM加载的时候,JVM会给这个……继续阅读 »

winrains 11个月前 (08-30) 21浏览 0个赞

Java技术

深入理解多线程(四):Monitor的实现原理

深入理解多线程(四):Monitor的实现原理
在深入理解多线程(一)——Synchronized的实现原理中介绍过关于Synchronize的实现原理,无论是同步方法还是同步代码块,无论是ACC_SYNCHRONIZED还是monitorenter、monitorexit都是基于Monitor实现的,那么这篇来介绍下什么是Monitor。 操作系统中的管程 如果你在大学学习过操作系统,你可能还记得管程(……继续阅读 »

winrains 11个月前 (08-30) 29浏览 0个赞