- Collections 工具类常用方法: 排序查找,替换操作同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void reverse(List list)//反转 void shuffle(List list)//随机排序 void sort(List list)//按自然排序的升序排序 void sort(List list, ... Collections 工具类常用方法: 排序查找,替换操作同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void reverse(List list)//反转 void shuffle(List list)//随机排序 void sort(List list)//按自然排序的升序排序 void sort(List list, ...
- 现在有两种线程,氢 oxygen 和氧 hydrogen,你的目标是组织这两种线程来产生水分子。 存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。 氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。 这些线程应该三三成组突破屏障并能立即组合产生一个水分子。 你必须保证产生... 现在有两种线程,氢 oxygen 和氧 hydrogen,你的目标是组织这两种线程来产生水分子。 存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来。 氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。 这些线程应该三三成组突破屏障并能立即组合产生一个水分子。 你必须保证产生...
- AbortPolicy(默认):直接抛出RejectedExecutionException异常阻止系统正常运行。 package com.istudy; import java.util.concurrent.*; /** * @projectname: HelloFlink * @description:AbortPolicy * @author: Mr.Zhan... AbortPolicy(默认):直接抛出RejectedExecutionException异常阻止系统正常运行。 package com.istudy; import java.util.concurrent.*; /** * @projectname: HelloFlink * @description:AbortPolicy * @author: Mr.Zhan...
- 因为redis是内存数据库,他把数据都存在内存里,所以要想办法实现持久化功能。 RDB RDB持久化可以手动执行,也可以配置定期执行,可以把某个时间的数据状态保存到RDB文件中,反之,我们可以用RDB文件还原数据库状态。 生成 有两个命令可以生成RDB文件: SAVE 命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器,服... 因为redis是内存数据库,他把数据都存在内存里,所以要想办法实现持久化功能。 RDB RDB持久化可以手动执行,也可以配置定期执行,可以把某个时间的数据状态保存到RDB文件中,反之,我们可以用RDB文件还原数据库状态。 生成 有两个命令可以生成RDB文件: SAVE 命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器,服...
- 1 前言 最近在公司维护的项目中碰到一个解决了定位很久的 bug , bug 找到的时候发现犯了很低级的错误——在中断处理函数中调用了 printf 函数,因为中断处理函数的调用了不可重入函数,导致中断丢失和系统位置错误,这里直接导致嵌入式 linux 系统应用进程中的所有线程停掉,进而导致看门狗进程得不到喂狗,设备重启。那什么是不可重入函数呢?为什么中断处理函数不能直接调用不... 1 前言 最近在公司维护的项目中碰到一个解决了定位很久的 bug , bug 找到的时候发现犯了很低级的错误——在中断处理函数中调用了 printf 函数,因为中断处理函数的调用了不可重入函数,导致中断丢失和系统位置错误,这里直接导致嵌入式 linux 系统应用进程中的所有线程停掉,进而导致看门狗进程得不到喂狗,设备重启。那什么是不可重入函数呢?为什么中断处理函数不能直接调用不...
- serial Serial(串行)收集器收集器是最基本、历史最悠久的垃圾收集器了。大家看名字就知道这个收集器是一个单线程收集器了。它的 “单线程” 的意义不仅仅意味着它只会使用一条垃圾收集线程去完成垃圾收集工作,更重要的是它在进行垃圾收集工作的时候必须暂停其他所有的工作线程( "Stop The World" ),直到它收集结束。 ... serial Serial(串行)收集器收集器是最基本、历史最悠久的垃圾收集器了。大家看名字就知道这个收集器是一个单线程收集器了。它的 “单线程” 的意义不仅仅意味着它只会使用一条垃圾收集线程去完成垃圾收集工作,更重要的是它在进行垃圾收集工作的时候必须暂停其他所有的工作线程( "Stop The World" ),直到它收集结束。 ...
- 线程和多线程 程序:是一段静态的代码,是应用软件执行的蓝本 进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程 线程:是比进程更小的执行单位。进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念 主线程:(每... 线程和多线程 程序:是一段静态的代码,是应用软件执行的蓝本 进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程 线程:是比进程更小的执行单位。进程在其执行过程中,可以产生多个线程,形成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念 主线程:(每...
- 面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。好吧,写就写,这还不容易。顺手写一个: public final class EagerSingleton { private static EagerSingleton singObj = new EagerSingleton(); private E... 面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。好吧,写就写,这还不容易。顺手写一个: public final class EagerSingleton { private static EagerSingleton singObj = new EagerSingleton(); private E...
- 实验目的: 1.理解解线程的概念及线程的生命周期。 2.掌握多线程的编程。 实验内容: 1.通过继承Thread类创建线程。 2.通过实现Runnable接口创建线程。 3.线程优先级操作。 4.用两个线程玩猜数字的游戏。 实验步骤: 1.通过继承Thread类创建一个实现睡眠... 实验目的: 1.理解解线程的概念及线程的生命周期。 2.掌握多线程的编程。 实验内容: 1.通过继承Thread类创建线程。 2.通过实现Runnable接口创建线程。 3.线程优先级操作。 4.用两个线程玩猜数字的游戏。 实验步骤: 1.通过继承Thread类创建一个实现睡眠...
- 功能 data.h #ifndef _Data_h_#define _Data_h_ #include <stdio.h>#include <stdlib.h>#include <string.h> #define ElemType PCB#define Status int#define OK 1#define ERROR 0#de... 功能 data.h #ifndef _Data_h_#define _Data_h_ #include <stdio.h>#include <stdlib.h>#include <string.h> #define ElemType PCB#define Status int#define OK 1#define ERROR 0#de...
- 本文将结合自己使用RocketMQ的经验,对消息发送常见的问题进行分享,基本会遵循出现问题,分析问题、解决问题。 1、No route info of this topic 无法找到路由信息,其完整的错误堆栈信息如下: 而且很多读者朋友会说Broker端开启了自动创建主题也会出现上述问题。 RocketMQ的路由寻找流程如下图所示: 上面的核心关键点如下: 如果... 本文将结合自己使用RocketMQ的经验,对消息发送常见的问题进行分享,基本会遵循出现问题,分析问题、解决问题。 1、No route info of this topic 无法找到路由信息,其完整的错误堆栈信息如下: 而且很多读者朋友会说Broker端开启了自动创建主题也会出现上述问题。 RocketMQ的路由寻找流程如下图所示: 上面的核心关键点如下: 如果...
- 线程与进程 线程是程序运行的基本执行单元,在系统里面至少会创建一个进程,而在一个进程里面也必须要创建一个线程。如果这样理解的话,进程包含线程,而一个进程中至少要有一个线程。 要注意的是进程之间是不可以共享内存的,比如我们电脑的系统,它不会共享的,但是线程之间是可以共享进程的CPU的,它们我们可以理解为是我们运行的程序,当我们运行了很多的程序,CPU不够,这个时候电脑... 线程与进程 线程是程序运行的基本执行单元,在系统里面至少会创建一个进程,而在一个进程里面也必须要创建一个线程。如果这样理解的话,进程包含线程,而一个进程中至少要有一个线程。 要注意的是进程之间是不可以共享内存的,比如我们电脑的系统,它不会共享的,但是线程之间是可以共享进程的CPU的,它们我们可以理解为是我们运行的程序,当我们运行了很多的程序,CPU不够,这个时候电脑...
- 什么是文件上传漏洞 文件上传漏洞是指 由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件 这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。 这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严... 什么是文件上传漏洞 文件上传漏洞是指 由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件 这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。 这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严...
- 经典的进程同步问题 普通版:一类进程作为生产者,生产产品,生产的产品放入一个缓冲区,消费者从缓冲区中取出产品,需要保证生产者不可以向满的缓冲区中添加产品,消费者不可以从空的缓冲区中取出产品。同一时刻只可以有一个生产者生产产品或者消费者消费产品。 升级版可以实现同一个时刻既有生产者生产产品,又有消费者消费产品。但是绝对不可以同一时刻多个生产者生产产品或者多个消费者消... 经典的进程同步问题 普通版:一类进程作为生产者,生产产品,生产的产品放入一个缓冲区,消费者从缓冲区中取出产品,需要保证生产者不可以向满的缓冲区中添加产品,消费者不可以从空的缓冲区中取出产品。同一时刻只可以有一个生产者生产产品或者消费者消费产品。 升级版可以实现同一个时刻既有生产者生产产品,又有消费者消费产品。但是绝对不可以同一时刻多个生产者生产产品或者多个消费者消...
- 调度层次 高级调度(作业调度)中级调度(进程调度)低级调度作业调度 FCSF先来先服务,作业等待时间得长短。比较有利于长作业(进程),而不利于短作业(进程)。SJF短作业优先,作业的运行时间。 优点:能有效的降低作业的平均等待事件,提高系统吞吐量。缺点:对长作业不利;该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理;由于作业(进程)的长短含主观因素,... 调度层次 高级调度(作业调度)中级调度(进程调度)低级调度作业调度 FCSF先来先服务,作业等待时间得长短。比较有利于长作业(进程),而不利于短作业(进程)。SJF短作业优先,作业的运行时间。 优点:能有效的降低作业的平均等待事件,提高系统吞吐量。缺点:对长作业不利;该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理;由于作业(进程)的长短含主观因素,...
上滑加载中
推荐直播
-
DeepSeek 深入浅出白话解读
2025/02/12 周三 17:00-18:00
Tim-华为云中国区AI解决方案总监
DeepSeek的来龙去脉,为什么DeepSeek那么强?哪些是它的领先优势?它是怎么发展过来的?在华为云上能不能用到DeepSeek?本节课将一一解读。
回顾中
热门标签