- 在命令行运行程序时,可以用“>"运算符把标准输出重定向到文件: ~/Desktop/Mc$ echo "hello world" > log.txt ~/Desktop/Mc$ tail -f log.txt hello world 123 标准输入、标准输出、标准错误是三大默认数据流,除此之外还有其他形式的数据流,如文件连接和网络连接也属于数据流。数据流就是流动的... 在命令行运行程序时,可以用“>"运算符把标准输出重定向到文件: ~/Desktop/Mc$ echo "hello world" > log.txt ~/Desktop/Mc$ tail -f log.txt hello world 123 标准输入、标准输出、标准错误是三大默认数据流,除此之外还有其他形式的数据流,如文件连接和网络连接也属于数据流。数据流就是流动的...
- ArrayList是非线程安全的,在多线程中同时操作ArrayList会经常出现ConcurrentModificationException。为了解决同步问题,java提供了Collections的同步类:SynchronizedList、SynchronizedMap、SynchronizedSet等。以SynchronizedList为例,从字面意义上看,应该是线程安全... ArrayList是非线程安全的,在多线程中同时操作ArrayList会经常出现ConcurrentModificationException。为了解决同步问题,java提供了Collections的同步类:SynchronizedList、SynchronizedMap、SynchronizedSet等。以SynchronizedList为例,从字面意义上看,应该是线程安全...
- 垃圾收集器 前言GC垃圾回收算法和垃圾收集器关系四种主要的垃圾收集器SerialParallelCMSG1 垃圾收集器总结查看默认垃圾收集器默认垃圾收集器有哪些各垃圾收集器的使用范围部分参数说明Java中的Server和Client模式新生代下的垃圾收集器串行GC(Serial)并行GC(ParNew)并行回收GC(Parallel)/ (Parallel ... 垃圾收集器 前言GC垃圾回收算法和垃圾收集器关系四种主要的垃圾收集器SerialParallelCMSG1 垃圾收集器总结查看默认垃圾收集器默认垃圾收集器有哪些各垃圾收集器的使用范围部分参数说明Java中的Server和Client模式新生代下的垃圾收集器串行GC(Serial)并行GC(ParNew)并行回收GC(Parallel)/ (Parallel ...
- 这是【从0到1学习Java线程池】系列文章的第 壹 篇,该系列文章总共三篇,介绍了 Java 线程池的使用以及原理,并且最后会实现一个基本的线程池。本篇文章主要介绍了 Java 线程池以及它的使用。 线程池是什么? 线程池用于多线程处理中,它可以根据系统的情况,可以有效控制线程执行的数量,优化运行效果。线程池做的工作主要是控制运行的线程的数量,处理过程中将任... 这是【从0到1学习Java线程池】系列文章的第 壹 篇,该系列文章总共三篇,介绍了 Java 线程池的使用以及原理,并且最后会实现一个基本的线程池。本篇文章主要介绍了 Java 线程池以及它的使用。 线程池是什么? 线程池用于多线程处理中,它可以根据系统的情况,可以有效控制线程执行的数量,优化运行效果。线程池做的工作主要是控制运行的线程的数量,处理过程中将任...
- AQS (1)aqs 使用node实现fifo队列,可以用于构建锁或者其他的同步装置的基础框架利用了一个int类型表示状态使用方法是继承子类通过继承并通过实现它的方法管理其状态{acquire 和 release}可以同时实现排他锁和共享锁模式(独占,共享) (2)Coun... AQS (1)aqs 使用node实现fifo队列,可以用于构建锁或者其他的同步装置的基础框架利用了一个int类型表示状态使用方法是继承子类通过继承并通过实现它的方法管理其状态{acquire 和 release}可以同时实现排他锁和共享锁模式(独占,共享) (2)Coun...
- 本博客简介介绍一下java线程的join方法,join方法是实现线程同步,可以将原本并行执行的多线程方法变成串行执行的 如图所示代码,是并行执行的 public class ThreadTest { //private static final Long count = 10000L; public static void main(String[] args){ ... 本博客简介介绍一下java线程的join方法,join方法是实现线程同步,可以将原本并行执行的多线程方法变成串行执行的 如图所示代码,是并行执行的 public class ThreadTest { //private static final Long count = 10000L; public static void main(String[] args){ ...
- 前言 本博客介绍一种创建型模式:单例模式 这是一种比较容易理解的设计模式,可以理解为创建对象的一种很好的做法。可以尽量避免创建过多的对象,给JVM造成很大的负载。 应用场景 单例模式的一些应用场景: 1、比如数据连接类,这是需要经常调用的 2、网站访问量统计的服务类,需要多次调用 3、导出导入Excel表,一些业务复杂的系统需要多次调用 … 总结起来就... 前言 本博客介绍一种创建型模式:单例模式 这是一种比较容易理解的设计模式,可以理解为创建对象的一种很好的做法。可以尽量避免创建过多的对象,给JVM造成很大的负载。 应用场景 单例模式的一些应用场景: 1、比如数据连接类,这是需要经常调用的 2、网站访问量统计的服务类,需要多次调用 3、导出导入Excel表,一些业务复杂的系统需要多次调用 … 总结起来就...
- 本博客介绍一下jvisualvm的简单使用教程,jvisualvm功能还是挺多的,不过本博客之简单介绍一下 1、拿线程快照信息 在jdk安装目录找到jvisualvm.exe,${JDK_HOME}\bin\jvisualvm.exe 这里可以看到具体的线程快照信息: 收集后可以看到如图,右键,保存线程快照信息 收集线程快照信息主要是为了监控是否有出现... 本博客介绍一下jvisualvm的简单使用教程,jvisualvm功能还是挺多的,不过本博客之简单介绍一下 1、拿线程快照信息 在jdk安装目录找到jvisualvm.exe,${JDK_HOME}\bin\jvisualvm.exe 这里可以看到具体的线程快照信息: 收集后可以看到如图,右键,保存线程快照信息 收集线程快照信息主要是为了监控是否有出现...
- 互联网中大部分的底层网络代码都是用C语言写的。网络程序通常由两部分程序组成:服务器和客户端。 服务器将同时与多个客户端通信。客户端与服务器之间将展开一段结构化对话,叫做协议。 互联网使用了各种协议,一部分是低层协议,另一部分是高层协议。 低层协议有IP,它用来控制二进制的0和1在互联网中的发送方式。 高层协议有HTTP,它用来控制浏览器与网络服务器的对话。 协议通... 互联网中大部分的底层网络代码都是用C语言写的。网络程序通常由两部分程序组成:服务器和客户端。 服务器将同时与多个客户端通信。客户端与服务器之间将展开一段结构化对话,叫做协议。 互联网使用了各种协议,一部分是低层协议,另一部分是高层协议。 低层协议有IP,它用来控制二进制的0和1在互联网中的发送方式。 高层协议有HTTP,它用来控制浏览器与网络服务器的对话。 协议通...
- 1. 什么是雪崩效应? 微服务环境,各服务之间是经常相互依赖的,如果某个不可用,很容易引起连锁效应,造成整个系统的不可用,这种现象称为服务雪崩效应。 如图,引用国外网站的图例:https://www.javatpoint.com/fault-tolerance-with-hystrix#,如图系统各种服务相互调用,一旦一个服务出现问题,假如系统没有熔断器,很容易影响... 1. 什么是雪崩效应? 微服务环境,各服务之间是经常相互依赖的,如果某个不可用,很容易引起连锁效应,造成整个系统的不可用,这种现象称为服务雪崩效应。 如图,引用国外网站的图例:https://www.javatpoint.com/fault-tolerance-with-hystrix#,如图系统各种服务相互调用,一旦一个服务出现问题,假如系统没有熔断器,很容易影响...
- 文章目录 第一章 Quartz1.1 Quartz概念1.2 Quartz任务调度主要元素1.3 Quartz特点1.4 Quartz基本元素关系图 第二章 Trigger(触发器)2.1 Trigger定义2.2 Trigger属性2.3 Trigger类型2.3.1 SimpleTrigger2.3.2 CalendarIntervalTrigger2.3.... 文章目录 第一章 Quartz1.1 Quartz概念1.2 Quartz任务调度主要元素1.3 Quartz特点1.4 Quartz基本元素关系图 第二章 Trigger(触发器)2.1 Trigger定义2.2 Trigger属性2.3 Trigger类型2.3.1 SimpleTrigger2.3.2 CalendarIntervalTrigger2.3....
- ulimit -n和-u可以查看linux的最大进程数和最大文件打开数。 临时方法: 为了优化linux性能,可能需要修改这个最大值。临时修改的话ulimit -n 204800就可以了,重启后失效。 永久生效的方法: 修改/etc/security/limits.conf文件 在文件末尾添加 * soft nofile 204800 * hard nofil... ulimit -n和-u可以查看linux的最大进程数和最大文件打开数。 临时方法: 为了优化linux性能,可能需要修改这个最大值。临时修改的话ulimit -n 204800就可以了,重启后失效。 永久生效的方法: 修改/etc/security/limits.conf文件 在文件末尾添加 * soft nofile 204800 * hard nofil...
- apt-get下载太慢~背景 首先检查一下软件源,建议换成国内的,这样下载会快很多。 在Linux中,默认的apt-get install 有时候会下载非常慢,尤其是添加的一些ppa去下载。发现apt-fast是个好东西,apt-fast 通过使用多线程下载来给apt-get 提速。经过测试效果出奇的好。 目录 apt-get下载太慢~背景 apt-fa... apt-get下载太慢~背景 首先检查一下软件源,建议换成国内的,这样下载会快很多。 在Linux中,默认的apt-get install 有时候会下载非常慢,尤其是添加的一些ppa去下载。发现apt-fast是个好东西,apt-fast 通过使用多线程下载来给apt-get 提速。经过测试效果出奇的好。 目录 apt-get下载太慢~背景 apt-fa...
- 文章目录 一、线程并行相关概念同步(Synchronous)和异步(Asynchronous)并发(Concurrency)和并行(Parallelism)临界区阻塞(Blocking)和非阻塞(Non-Blocking)饥饿(Starvation)、死锁(Deadlock)和活锁(Livelock) 二、并行的两个重要定律Amdahi定律Gustafson定律... 文章目录 一、线程并行相关概念同步(Synchronous)和异步(Asynchronous)并发(Concurrency)和并行(Parallelism)临界区阻塞(Blocking)和非阻塞(Non-Blocking)饥饿(Starvation)、死锁(Deadlock)和活锁(Livelock) 二、并行的两个重要定律Amdahi定律Gustafson定律...
- 前言 在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。 以下的源码是Android8.0 API 26。 LayoutInflater 今天我们来看一下Android源码中的设计... 前言 在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。 以下的源码是Android8.0 API 26。 LayoutInflater 今天我们来看一下Android源码中的设计...
上滑加载中
推荐直播
-
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步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签