- 1、Condition定义Condition是一个接口,定义在juc中(java.util.concurrent.locks.Condition),它的主要功能类似于wait()/notify(),但是Condition其实现比wait()/notify()使用更加灵活,简洁、适用场景更加丰富。2、Condition之于Lock与wait()/notify()之于synchronized2.... 1、Condition定义Condition是一个接口,定义在juc中(java.util.concurrent.locks.Condition),它的主要功能类似于wait()/notify(),但是Condition其实现比wait()/notify()使用更加灵活,简洁、适用场景更加丰富。2、Condition之于Lock与wait()/notify()之于synchronized2....
- 1、简单的数据库连接池简介:使用等待超时模式来构造一个简单的数据库连接池。数据库连接池支持如下功能普通获取连接无超时时间超时获取连接,超时时间之后返回null使用连接释放连接记录获取连接和为获取连接的次数,统计连接池的性能超时等待模式在实现数据库连接池功能之前,我们先来回顾一下上一章的等待/通知经典范式。即加锁、条件循环和处理逻辑三个步骤,但是常规的等待/通知无法做到超时等待,因此我们做一些... 1、简单的数据库连接池简介:使用等待超时模式来构造一个简单的数据库连接池。数据库连接池支持如下功能普通获取连接无超时时间超时获取连接,超时时间之后返回null使用连接释放连接记录获取连接和为获取连接的次数,统计连接池的性能超时等待模式在实现数据库连接池功能之前,我们先来回顾一下上一章的等待/通知经典范式。即加锁、条件循环和处理逻辑三个步骤,但是常规的等待/通知无法做到超时等待,因此我们做一些...
- 简介:线程开始运行,拥有自己的栈空间,就会如同一个脚本一样,按照既定的代码一步步的执行,直到终止。但是,如果每个线程之间都是孤立的,那么它们的价值就会很少;反之,如果多个线程能够配合着完成工作,将会带来各方面巨大的收益。1、volatile和synchronized关键字说明:(不做过多说明,需要的话可以看我的往期)Java支持多线程访问一个对象或者对象的成员变量,由于每个线程都拥有这个变量... 简介:线程开始运行,拥有自己的栈空间,就会如同一个脚本一样,按照既定的代码一步步的执行,直到终止。但是,如果每个线程之间都是孤立的,那么它们的价值就会很少;反之,如果多个线程能够配合着完成工作,将会带来各方面巨大的收益。1、volatile和synchronized关键字说明:(不做过多说明,需要的话可以看我的往期)Java支持多线程访问一个对象或者对象的成员变量,由于每个线程都拥有这个变量...
- 简介:线程是操作系统调度的最小单元,在多核环境中,多个线程能同时执行,如果运用得当,能显著的提升程序的性能。一、线程初步认识1、什么是线程操作系统运行一个程序会为其启动一个进程。例如,启动一个Java程序会创建一个Java进程。现代操作系统调度的最小单元是线程,线程也称为轻量级进程(Light Weight Process),一个进程中可以创建一个到多个线程,线程拥有自己的计数器、堆栈和局部... 简介:线程是操作系统调度的最小单元,在多核环境中,多个线程能同时执行,如果运用得当,能显著的提升程序的性能。一、线程初步认识1、什么是线程操作系统运行一个程序会为其启动一个进程。例如,启动一个Java程序会创建一个Java进程。现代操作系统调度的最小单元是线程,线程也称为轻量级进程(Light Weight Process),一个进程中可以创建一个到多个线程,线程拥有自己的计数器、堆栈和局部...
- 1、volatile的特性理解volatile特性的一个好办法是把对volatile变量的单个读/写,看成是使用同一个锁对单个读/写操作做了同步。代码示例:package com.lizba.p1;/** * <p> * volatile示例 * </p> * * @Author: Liziba * @Date: 2021/6/9 21:34 */public class Vola... 1、volatile的特性理解volatile特性的一个好办法是把对volatile变量的单个读/写,看成是使用同一个锁对单个读/写操作做了同步。代码示例:package com.lizba.p1;/** * <p> * volatile示例 * </p> * * @Author: Liziba * @Date: 2021/6/9 21:34 */public class Vola...
- 简介:顺序一致性内存模型是一个理论参考模型,处理器的内存模型和编程语言的内存模型都会以顺序一致性内存模型作为参照。1、数据竞争和顺序一致性当程序未正确同步时,就可能存在数据竞争。1.1 Java内存模型规范对数据竞争的定义如下在一个线程中写一个变量在另一个线程中读同一个变量写和读没有通过同步来排序如果一个多线程程序能够正确同步,这个程序将是一个没有数据竞争的程序,往往存在数据竞争的程序,运行... 简介:顺序一致性内存模型是一个理论参考模型,处理器的内存模型和编程语言的内存模型都会以顺序一致性内存模型作为参照。1、数据竞争和顺序一致性当程序未正确同步时,就可能存在数据竞争。1.1 Java内存模型规范对数据竞争的定义如下在一个线程中写一个变量在另一个线程中读同一个变量写和读没有通过同步来排序如果一个多线程程序能够正确同步,这个程序将是一个没有数据竞争的程序,往往存在数据竞争的程序,运行...
- 简介:并发编程的目的是为了让程序运行的更快,但是,并不是启动更多的线程就能让程序最大限度的并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行的更快,会面临非常多的挑战,比如上下文切换的问题、死锁问题,以及受限于硬件和软件的资源限制问题,本篇文章介绍几种并发编程的挑战及解决方案,文章总结至《Java并发编程的艺术》一、上下文切换即使是单核处理器也支持多线程执行代码,CPU通过给每... 简介:并发编程的目的是为了让程序运行的更快,但是,并不是启动更多的线程就能让程序最大限度的并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行的更快,会面临非常多的挑战,比如上下文切换的问题、死锁问题,以及受限于硬件和软件的资源限制问题,本篇文章介绍几种并发编程的挑战及解决方案,文章总结至《Java并发编程的艺术》一、上下文切换即使是单核处理器也支持多线程执行代码,CPU通过给每...
- JRE 代表 Java 运行时环境。JDK 代表 Java 开发工具包。大多数情况下,如果要运行 Java 应用程序,只需安装 Only JRE。但是,如果您正在做一些开发工作,或者编译需要 Java SDK 的应用程序,那么您必须安装 JDK。本教程介绍了如何仅安装 JRE、仅安装 JDK 以及同时安装 JRE JDK。仅下载 Java 8 JRE可以从官网下载最新版本的 Java 8 。... JRE 代表 Java 运行时环境。JDK 代表 Java 开发工具包。大多数情况下,如果要运行 Java 应用程序,只需安装 Only JRE。但是,如果您正在做一些开发工作,或者编译需要 Java SDK 的应用程序,那么您必须安装 JDK。本教程介绍了如何仅安装 JRE、仅安装 JDK 以及同时安装 JRE JDK。仅下载 Java 8 JRE可以从官网下载最新版本的 Java 8 。...
- 厂长熬夜给大家写的java基础文章,定时更新。 厂长熬夜给大家写的java基础文章,定时更新。
- 简要介绍:Java语言先比较与C和C++有一个非常大的不同点在于Java语言无法直接操作内存,实际开发中,默认都是由JVM来进行内存分配和垃圾回收,而JVM在进行垃圾回收的时候,绝大多数垃圾回收器都需要STW(stop the world)这个问题往往会导致服务短暂或者较长时间的暂停。因此Unsafe提供了通过Java直接操作内存的API,尽管Unsafe是JavaNIO和并发的核心类,但是... 简要介绍:Java语言先比较与C和C++有一个非常大的不同点在于Java语言无法直接操作内存,实际开发中,默认都是由JVM来进行内存分配和垃圾回收,而JVM在进行垃圾回收的时候,绝大多数垃圾回收器都需要STW(stop the world)这个问题往往会导致服务短暂或者较长时间的暂停。因此Unsafe提供了通过Java直接操作内存的API,尽管Unsafe是JavaNIO和并发的核心类,但是...
- 摘要:Java开发人员经常会在程序中遇到java.lang.ClassNotFoundException这个异常,而这个异常背后涉及的Java知识点就是我们今天要讲的主题,Java的类加载机制。 一、加载的五大过程JVM类加载机制分为五个部分:加载、验证、准备、解析、初始化。下面我们就从这五个方面来看一下JVM是怎么进行类加载的。1、加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一... 摘要:Java开发人员经常会在程序中遇到java.lang.ClassNotFoundException这个异常,而这个异常背后涉及的Java知识点就是我们今天要讲的主题,Java的类加载机制。 一、加载的五大过程JVM类加载机制分为五个部分:加载、验证、准备、解析、初始化。下面我们就从这五个方面来看一下JVM是怎么进行类加载的。1、加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一...
- 一、任务说明构建一个简单的具有页面跳转功能的应用,以此来熟悉HarmonyOS应用开发流程!HarmonyOS提供了两种FA(Feature Ability)的UI开发框架:Java UI框架和JS UI框架。本文会通过Java和JS两种方式的Demo来入门HarmonyOS,此外也会介绍HarmonyOS的DevEco Studio编码工具的相关使用,工程的配置文件介绍,资源文件介绍等内容... 一、任务说明构建一个简单的具有页面跳转功能的应用,以此来熟悉HarmonyOS应用开发流程!HarmonyOS提供了两种FA(Feature Ability)的UI开发框架:Java UI框架和JS UI框架。本文会通过Java和JS两种方式的Demo来入门HarmonyOS,此外也会介绍HarmonyOS的DevEco Studio编码工具的相关使用,工程的配置文件介绍,资源文件介绍等内容...
- 一、简介1.1 什么是页面信息以页面信息组织,信息页面由语言来实现,在各个信息页面之间建立超文本链接以便浏览,这就是页面。页面一般包括:文本、图像、表格、超链接等基本元素。2.1 HarmonyOS(鸿蒙)中的页面当我们打开手机App之后看到的都是页面!在HarmonyOS中,一个页面可以被当做一个Ability,更准确的说是Page Ability中的AbilitySlice(指应用的单个... 一、简介1.1 什么是页面信息以页面信息组织,信息页面由语言来实现,在各个信息页面之间建立超文本链接以便浏览,这就是页面。页面一般包括:文本、图像、表格、超链接等基本元素。2.1 HarmonyOS(鸿蒙)中的页面当我们打开手机App之后看到的都是页面!在HarmonyOS中,一个页面可以被当做一个Ability,更准确的说是Page Ability中的AbilitySlice(指应用的单个...
- HarmonyOS与Android的对比相信是很多关注鸿蒙的人,非常关注的一个焦点话题…… HarmonyOS与Android的对比相信是很多关注鸿蒙的人,非常关注的一个焦点话题……
- 在遇到线程安全问题的时候,我们会使用加锁机制来确保线程安全,但如果过度地使用加锁,则可能导致锁顺序死锁(Lock-Ordering Deadlock)。或者有的场景我们使用线程池和信号量来限制资源的使用,但这些被限制的行为可能会导致资源死锁(Resource DeadLock)。这是来自Java并发必读佳作 Java Concurrency in Practice 关于活跃性危险中的描述。 在遇到线程安全问题的时候,我们会使用加锁机制来确保线程安全,但如果过度地使用加锁,则可能导致锁顺序死锁(Lock-Ordering Deadlock)。或者有的场景我们使用线程池和信号量来限制资源的使用,但这些被限制的行为可能会导致资源死锁(Resource DeadLock)。这是来自Java并发必读佳作 Java Concurrency in Practice 关于活跃性危险中的描述。
上滑加载中
推荐直播
-
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步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签