并发和并行并发和并行目标都是最大化CPU的使用率 并行:在同一时刻,多条指令在多个处理器上同时执行,无论是从微观还是宏观的角度来看二者都是一起执行的 并发:在同一时刻只能有一条指令执行,但多个进程指令快速的轮换执行,使得在宏观上具有多个进程时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干份,使多个进程快速交替执行 进程与线程进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。 进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器 等),也有的程序只能启动一个实例进程(例如网易云音乐、360 安全卫士等) 线程 一个进程之内可以分为一到多个线程。 一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 CPU 执行 Java 中,线程作为最小调度单位,进程作为资源分配的最小单位。 在 windows 中进程是不活动 ...
坚持就是胜利 LeetCode地址 引用站外地址 LeetCode 844 模拟栈思想我们可以使用栈的思想来模拟这个过程。从左到右遍历字符串,当遇到字符时,将其压入栈中,当遇到 ‘#’ 时,弹出栈顶字符,表示退格。最后,比较两个字符串栈中的内容是否相等。 代码展示123456789101112131415public boolean backspaceCompare(String s, String t) { return buildString(s).equals(buildString(t));}private String buildString(String str) { StringBuilder sb = new StringBuilder(); for (char c : str.toCharArray()) { ...
数据结构与算法
未读坚持就是胜利 LeetCode地址 引用站外地址 LeetCode 27 解题思路01通过双指针方式,将不等于val的元素移动到数组的前面,定义两个双指针,slow、fast,初始值均为0。 遍历数组,当nums[fast]不等于val时,将其赋值给nums[slow],并同时将slow和fast指针都向后移动一位. 当nums[fast]等于val时,只需要将fast指针向后移动一位即可.同时slow也会随着循环的自增+1 最后返回fast的长度即可代码展示1234567891011public class ArrayElementRemoval { public static int removeElement(int[] nums, int val) { int slow = 0; // 慢指针 for (int fast = ...
数据结构与算法
未读坚持就是胜利 LeetCode地址 引用站外地址 LeetCode 69 写在前面的话这道题需要你对 算术平方根有一定的了解,如果您不知道,可以先点开学习一下平方和平方根的概念 点我查看 当我们谈论算术平方根时,需要先理解平方和平方根的概念。平方是对一个数进行乘以自身的操作。例如,2 的平方是 2 2 = 4,3 的平方是 3 3 = 9。而平方根则是指一个数的平方等于给定数的操作。例如,4 的平方根就是一个数,使得它的平方等于 4。因为 2 * 2 = 4,所以 2 就是 4 的平方根。在数学中,平方根有两种情况:正平方根和负平方根。正平方根指的是一个非负实数的平方根,例如 4 的正平方根是 2。负平方根指的是一个负数的平方根,例如 -4 的负平方根是 -2。但是在常见的数学应用中,一般只讨论非负实数的平方根。计算算术平方 ...
数据结构与算法
未读坚持就是胜利 LeetCode地址 引用站外地址 LeetCode 35 解题思路给定一个非递减排序的数组nums,和一个目标值target。要求在数组中搜索目标值的位置,如果目标值存在,则返回其索引,如果目标值不存在,返回应该插入的位置索引。 暴力解法(左闭右开)暴力解法的思路比较简单,遍历数组中的每个元素,如果当前元素大于等于目标值,说明目标值应该插入到当前位置或之前的位置,即返回当前索引。如果遍历完整个数组都没有找到大于等于目标值的元素,说明目标值应该插入到数组的末尾位置,即返回数组的长度。 12345678class Solution { public int searchInsert(int[] nums, int target) { for(int i = 0 ; i < nums.length; i ++){ ...
数据结构与算法
未读坚持就是胜利 LeetCode地址 引用站外地址 LeetCode 704 二分法要素一个题解能不能使用二分法需要满足两个提前条件 数组必须为有序 数组中无重复元素: 一旦有重复元素,使用二分法返回的元素下表可能不唯一 第一种写法解析 传进来目标值target是在一个左闭右闭的区间里,也就是在 [L , R] ,区间定义之后就决定了二分法的代码应该如何写了, while(l <= r)要使用 <= 因为 l == r 是有意义的,所以使用<= 当if(nums[mid] > target) r将要赋值为mid-1,因为当前这个num[mid]是大于target的,首先mid位置的数肯定不是target,大于那肯定就是在左边,因为数组是有序的,那接下来肯定是要在l 到 mid-1的位置进行二分查找,所以r要等于mid-11234567891011121 ...
Hexo
未读更新记录 本教程基于anzhiyu主题修改,如果是小白建议先按照鱼佬文档教程搭建好基本页面在看此教程 nav顶栏左侧应用列表ICON优化 首页顶部相关配置home_top优化 顶栏navIcon问题问题描述 点开展示 原教程中 nav.meun.item.link下只支持链接图标(也不能算是图标吧,就是图片)换成anzhiyu-icon-xxx也不行,说明此处并不支持icon的图标那就只能自己适配了,修改完后的nav可适配 阿里图标、aanzhiyi-icon、faanzhiyu主题仓库中此处只有img标签,并不支持icon图标展示因此此处也只能填写外链图片地址 修改nav.pug文件路径: themes/anzhiyu/layout/includes/header ...
更新记录 本教程基于anzhiyu二改,如果是小白建议先按照鱼佬文档教程搭建好基本页面在看此教程 相册支持Memos地址 相册细节优化(type为2展示时间) album_list和url问题 初衷:更新相册为了更方便一点,按照鱼的主题教程来搭建的目前只支持手动在 album.yml 文件中更新照片数据更新完之后还需要 在编译 、 在提交博客到仓库,为了方便更新相册数据因此接入Memos,省去在博客中操作的繁琐步骤让页面看起来更顺我心意,看不顺眼那就魔改一下下吧~ 这里在详细说明一下关于 album_list的问题,在鱼佬的相册页面配置教程中,有一个album_list和一个url属性,当album_list和url同时存在的时候,会将url中的数据覆盖掉album_list中的数据,所以我觉得要么就都展示,要么就严谨一点做个断言处 ...
Linux常用命令系统服务管理systemctl 启动服务:systemctl start httpd.service 关闭服务:systemctl stop httpd.service 重启服务(不管是否在运行):systemctl restart httpd.service 重新载入配置(不中断服务):systemctl reload httpd.service 查看运行状态:systemctl status httpd.service 设置开机启动:systemctl enable httpd.service 禁止开机启动:systemctl disable httpd.service 查看系统安装的服务:systemctl list-units —type=service 文件管理ls列出/home目录下的子目录:ls -l /home列出当前文件夹下所有文件夹及文件大小:ls -lht pwd显示当前工作目录 cd切换目录: cd /usr/local date以指定格式显示日期;date ‘+date:%x time:%X’ passwd修改root密码:passwd r ...
Centos7前置操作更新系统运行以下命令可以更新系统的软件包和组件: 1sudo yum update 安装必要的软件安装一些常用的软件和工具,比如 vim 编辑器、net-tools、wget 等: 1sudo yum install vim net-tools wget 设置静态 IP 地址或者配置网络 修改 /etc/sysconfig/network-scripts/ifcfg-<interface> 文件来配置网络接口。 防火墙设置根据需要打开或关闭防火墙端口: 启用防火墙:sudo systemctl start firewalld 禁用防火墙:sudo systemctl stop firewalld 更新内核(可选): 更新内核可以提高系统的稳定性和安全性。可以使用以下命令来更新内核: 1sudo yum install kernel 安装DockerDocker 分为 CE 和 EE 两大版本。CE 即社区版(免费),EE 即企业版,强调安全,付费使用。Docker CE 分为 stable 、test 和 nightly 三个更新频道。 本教程以Ce ...