- Java中的序列化(Serialization)序列化是Java中一种将对象转换为字节流的过程,这样可以方便地在网络上传输或存储到磁盘上。反序列化则是将字节流重新转换回对象的过程。本篇文章将详细介绍Java中的序列化以及如何实现序列化和反序列化。 1. 什么是序列化?序列化是将对象的状态信息转换为一系列可存储或传输的字节的过程。通过序列化,我们可以将一个对象保存到文件或者通过网络发送给其他... Java中的序列化(Serialization)序列化是Java中一种将对象转换为字节流的过程,这样可以方便地在网络上传输或存储到磁盘上。反序列化则是将字节流重新转换回对象的过程。本篇文章将详细介绍Java中的序列化以及如何实现序列化和反序列化。 1. 什么是序列化?序列化是将对象的状态信息转换为一系列可存储或传输的字节的过程。通过序列化,我们可以将一个对象保存到文件或者通过网络发送给其他...
- ConcurrentHashMap 如何实现线程安全 引言在多线程环境下,线程安全是一项重要的考虑因素。在并发编程中,使用 java.util.HashMap 是常见的选择,但它并不是线程安全的。为了解决这个问题,Java 提供了 ConcurrentHashMap 类,在保证高并发性能的同时,提供了线程安全的功能。本文将介绍 ConcurrentHashMap 的实现原理,以及如何以线程... ConcurrentHashMap 如何实现线程安全 引言在多线程环境下,线程安全是一项重要的考虑因素。在并发编程中,使用 java.util.HashMap 是常见的选择,但它并不是线程安全的。为了解决这个问题,Java 提供了 ConcurrentHashMap 类,在保证高并发性能的同时,提供了线程安全的功能。本文将介绍 ConcurrentHashMap 的实现原理,以及如何以线程...
- 在Java中,我们可以使用多种类来实现线程池。本文将介绍常用的几种线程池类及其特点。 1. ThreadPoolExecutorThreadPoolExecutor是Java标准库提供的一个线程池实现类。它提供了丰富的配置参数,如核心线程数、最大线程数、空闲线程存活时间等。通过构造函数或者setCorePoolSize()、setMaximumPoolSize()、setKeepAliveT... 在Java中,我们可以使用多种类来实现线程池。本文将介绍常用的几种线程池类及其特点。 1. ThreadPoolExecutorThreadPoolExecutor是Java标准库提供的一个线程池实现类。它提供了丰富的配置参数,如核心线程数、最大线程数、空闲线程存活时间等。通过构造函数或者setCorePoolSize()、setMaximumPoolSize()、setKeepAliveT...
- Java创建线程的方法在Java中,我们可以使用java.lang.Thread类来创建线程。Thread类提供了一个继承层次结构,允许我们创建自定义线程。本文将详细介绍Java创建线程的方法及其原理。一、继承Thread类要创建一个线程,首先需要继承Thread类。然后重写run()方法,该方法将在新线程中执行。以下是一个简单的示例:public class MyThread extend... Java创建线程的方法在Java中,我们可以使用java.lang.Thread类来创建线程。Thread类提供了一个继承层次结构,允许我们创建自定义线程。本文将详细介绍Java创建线程的方法及其原理。一、继承Thread类要创建一个线程,首先需要继承Thread类。然后重写run()方法,该方法将在新线程中执行。以下是一个简单的示例:public class MyThread extend...
- 进程/线程/协程单进程->多进程在早期的单进程操作系统中,计算机只能一个任务一个任务的进行处理,任务完成之后才可以进行下一个任务处理这就出现了一个情况:当进程阻塞时,计算机的cpu资源就暂停浪费掉了任务1需要耗时1小时,任务2只需要耗时10分钟,但是只能等到任务1完成之后才能运行任务2所以,根据这个情况,优化成了多进程并发能力:当进程阻塞时,自动切换到下一个进程去运行,等到进程不阻塞时再回去... 进程/线程/协程单进程->多进程在早期的单进程操作系统中,计算机只能一个任务一个任务的进行处理,任务完成之后才可以进行下一个任务处理这就出现了一个情况:当进程阻塞时,计算机的cpu资源就暂停浪费掉了任务1需要耗时1小时,任务2只需要耗时10分钟,但是只能等到任务1完成之后才能运行任务2所以,根据这个情况,优化成了多进程并发能力:当进程阻塞时,自动切换到下一个进程去运行,等到进程不阻塞时再回去...
- ThreadLocal:线程局部,但更多听到是线程局部变量,所谓局部即:单个线程内变量可共享,在并发线程中见到他的概率更多,但解决的并非线程安全问题。This class provides thread-local variables. These variables differ from * their normal counterparts in that each thread t... ThreadLocal:线程局部,但更多听到是线程局部变量,所谓局部即:单个线程内变量可共享,在并发线程中见到他的概率更多,但解决的并非线程安全问题。This class provides thread-local variables. These variables differ from * their normal counterparts in that each thread t...
- 杀死一个开发,只需要变更三次需求。2.1-volatile的应用(wall la tai l 还是 wall lei tai l)它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值,它不会引起线程上下文的切换和调度CPU术语定义volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编... 杀死一个开发,只需要变更三次需求。2.1-volatile的应用(wall la tai l 还是 wall lei tai l)它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值,它不会引起线程上下文的切换和调度CPU术语定义volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编...
- 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。参考《Java并发编程的艺术》happens-before简介从JDK 5开始,Java使用新的JSR-133内存模型(除非特别说明,本文针对的都是JSR-133内存模型)。JSR-133使用happens-before的概念来阐述操作之间的内... 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。参考《Java并发编程的艺术》happens-before简介从JDK 5开始,Java使用新的JSR-133内存模型(除非特别说明,本文针对的都是JSR-133内存模型)。JSR-133使用happens-before的概念来阐述操作之间的内...
- 是什么EventLoop (事件循环对象)本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件。编辑 它的继承关系比较复杂一条线是继承自 j.u.c.ScheduledExecutorService 因此包含了线程池中所有的方法另一条线是继承自 netty 自己的 OrderedEventExecutor,提供了... 是什么EventLoop (事件循环对象)本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件。编辑 它的继承关系比较复杂一条线是继承自 j.u.c.ScheduledExecutorService 因此包含了线程池中所有的方法另一条线是继承自 netty 自己的 OrderedEventExecutor,提供了...
- 目录channel 的主要作用ChannelFutureCloseFuture为什么要异步关闭channel 的主要作用close() 可以用来关闭 channelcloseFuture() 用来处理 channel 的关闭sync 方法作用是同步等待 channel 关闭而 addListener 方法是异步等待 channel 关闭pipeline() 方法添加处理器write() ... 目录channel 的主要作用ChannelFutureCloseFuture为什么要异步关闭channel 的主要作用close() 可以用来关闭 channelcloseFuture() 用来处理 channel 的关闭sync 方法作用是同步等待 channel 关闭而 addListener 方法是异步等待 channel 关闭pipeline() 方法添加处理器write() ...
- 目录变量的线程安全常见线程安全类变量的线程安全成员变量和静态变量是否线程安全?如果它们没有共享,则线程安全如果它们被共享了,根据它们的状态是否能够改变,又分两种情况如果只有读操作,则线程安全如果有读写操作,则这段代码是临界区,需要考虑线程安全局部变量是否线程安全?局部变量是线程安全的但局部变量引用的对象则未必如果该对象没有逃离方法的作用访问,它是线程安全的如果该对象逃离方法的作用范围,需... 目录变量的线程安全常见线程安全类变量的线程安全成员变量和静态变量是否线程安全?如果它们没有共享,则线程安全如果它们被共享了,根据它们的状态是否能够改变,又分两种情况如果只有读操作,则线程安全如果有读写操作,则这段代码是临界区,需要考虑线程安全局部变量是否线程安全?局部变量是线程安全的但局部变量引用的对象则未必如果该对象没有逃离方法的作用访问,它是线程安全的如果该对象逃离方法的作用范围,需...
- 目录问题的提出思路 - 同步锁思路 - 不可变不可变设计final 的使用保护性拷贝设置 final 变量的原理获取final变量的原理问题的提出日 期 转 换 的 问 题public class ThreadText { public static void main(String[] args) throws InterruptedException { Simpl... 目录问题的提出思路 - 同步锁思路 - 不可变不可变设计final 的使用保护性拷贝设置 final 变量的原理获取final变量的原理问题的提出日 期 转 换 的 问 题public class ThreadText { public static void main(String[] args) throws InterruptedException { Simpl...
- 目录定义基本实现 带超时版 GuardedObject多任务版 GuardedObject总结定义即 Guarded Suspension,用在一个线程等待另一个线程的执行结果要点有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者)JDK 中,join 的实现、Future 的实... 目录定义基本实现 带超时版 GuardedObject多任务版 GuardedObject总结定义即 Guarded Suspension,用在一个线程等待另一个线程的执行结果要点有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者)JDK 中,join 的实现、Future 的实...
- 定义让有限的工作线程(Worker Thread)来轮流异步处理无限多的任务。也可以将其归类为分工模式,它的典型实现 就是线程池,也体现了经典设计模式中的享元模式。例如,海底捞的服务员(线程),轮流处理每位客人的点餐(任务),如果为每位客人都配一名专属的服务员,那 么成本就太高了(对比另一种多线程设计模式:Thread-Per-Message)注意,不同任务类型应该使用不同的线程池,这样能... 定义让有限的工作线程(Worker Thread)来轮流异步处理无限多的任务。也可以将其归类为分工模式,它的典型实现 就是线程池,也体现了经典设计模式中的享元模式。例如,海底捞的服务员(线程),轮流处理每位客人的点餐(任务),如果为每位客人都配一名专属的服务员,那 么成本就太高了(对比另一种多线程设计模式:Thread-Per-Message)注意,不同任务类型应该使用不同的线程池,这样能...
- 概述全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架特点: 用 state 属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取 锁和释放锁getState - 获取 state 状态setState - 设置 state 状态compareAndSetState - cas 机制设置 state 状态独... 概述全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架特点: 用 state 属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取 锁和释放锁getState - 获取 state 状态setState - 设置 state 状态compareAndSetState - cas 机制设置 state 状态独...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签