- 博客(32)
- 收藏
- 关注
原创 Go_原子操作和锁
当多个协程进行资源竞争的时候,在一个协程获取到锁的时候,其余的协程进入阻塞态,等待资源释放。当该协程运行结束后,调度系统将阻塞队列其中的一个协程拿出来去获取锁,这其中涉及到切换上下文操作,需要消耗一定资源时间。当多个goroutine在没有相互同步的情况下,访问某个共享的资源,同时对该资源进行读写时,就会处于相互竞争的状态,这就是并发中的资源竞争。第一个人使用前先将门锁上,以防外面的人进来,结束后,再把门锁打开,然后第二个人在锁门,上厕所,开锁。如上图,i++可以分为三个操作,这三个操作均为原子操作。
2023-09-30 13:11:17
477
1
原创 JS_Canvas绘制通信网络结点
JS_Canvas绘制通信网络结点实现效果基础知识Canvas画圆Canvas画线思路生成随机结点点击连线总代码实现效果通过画布绘制通信网络节点分布示意图,并能实现节点间通信链路的连线,即点击添加结点按钮可以随机生成结点,单击任意两个结点完成连线canvas菜鸟教程:https://www.runoob.com/html/html5-canvas.html基础知识Canvas画圆var c = document.getElementById("myCanvas");var ctx = c.
2022-04-14 12:22:49
1173
原创 vue小程序开发(四)首页 推荐
vue小程序开发(四)首页 推荐编写 首页-推荐 模块推荐-最顶部模块推荐-月份模块月份模块标题样式推荐-热门模块基本布局使用scroll-view改造容器分页功能分析实现头部固定分页实现底部触发首页 - 专辑功能分析轮播图实现列表数据渲染接口文档出错net::ERR_PROXY_CONNECTION_FAILED编写 首页-推荐 模块功能介绍接口文档数据动态渲染moment.js 的使用“热门”列表的基于scroll-view的分页加载 在组件中能用生命周期组件没有太多,使用moute
2022-04-14 01:01:53
2215
原创 vue小程序开发(三)
vue小程序开发(三)搭建子页面新增组件在home/index.vue中导入页面效果分段器分段器优化代码优化结果封装自己的异步请求原因方法封装挂载功能分析修改导航栏外观使用 分段器组件 搭建子页面封装自己异步请求(原生不支持promise,uni-app不会出现等待页面)pages.json改成黑底白字"globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-ap
2022-04-14 01:01:01
1139
原创 vue小程序开发(二)项目搭建
vue小程序开发(二)项目搭建引入tabbar页面引入字体图标uni-uiuni-app新建项目创建项目vue create -p dcloudio/uni-preset-vue dnpicture安装 sass 依赖npm install sass-loader node-sass建议cnpm i node-sass@4.14.1 cnpm i sass-loader@7.3.1 --save-dev启动npm run dev:mp-weixin引入tabbar页面
2022-04-14 00:59:46
2098
原创 redis(一)数据类型
redis(一)数据类型1、string2、hash3、list4、set5、sorted_set数据类型实践案例在redis命令行运行程序时,成功或失败时,返回(Integer)1或(Integer)01、string基础操作添加数据set key value获取数据get key删除数据del key添加/修改多个数据mset key1 value1 key2 value2获取多个数据mget key1 key2获取数据字符个数(字符串长度strlen key
2022-04-14 00:56:36
754
原创 vue小程序开发(一) uni-app基本学习
vue小程序开发(一) uni-app基本学习脚手架搭建项目新建页面样式和sass基本语法数据展示数据循环条件编译计算属性事件传参方式组件组件的简单使用示例组件传递参数父向子传递数据子向父传递数据全局共享数据组件插槽未使用插槽在组件中添加插槽生命周期介绍当小程序模拟器无反应时脚手架搭建项目全局安装npm install -g @vue/cli创建项目vue create -p dcloudio/uni-preset-vue my-project启动项目(微信小程序)npm ru
2022-04-14 00:54:01
8413
原创 docker学习笔记
尚硅谷Docker笔记一、基本特性三大特征作用虚拟机的缺点docker和传统虚拟化方式的不同之处阿里云镜像加速器配置运行底层原理为什么Docker比VM快二、命令帮助命令镜像命令容器命令新建并启动容器列出当前所有正在运行的容器退出容器启动容器重启容器停止容器强制停止容器删除已停止的容器重要查看容器内运行的进程查看容器内部细节进入正在运行的容器并以命令行交互三、镜像镜像原理UnionFS(联合文件系统)Docker镜像加载原理镜像特点镜像commit案例四、容器数据卷功能作用特点添加数据卷的方式五、Docke
2022-04-14 00:48:57
1926
原创 dubbo学习笔记
尚硅谷DUBBO笔记一、MAVEN工程公共接口 gmall-interfaceProviderConsumer二、SPRINBG-BOOT工程依赖位置公共接口ProviderConsumer三、启动zookeeper四、启动dubbo管理控制台五 、案例springboot整合六 、配置七、高可用1、zookeeper宕机和Dubbo直连2、负载均衡模式3、服务降级方法4、服务容错&Hystrix**集群容错模式**方式1、配置spring-cloud-starter-netflix-hystrix
2022-04-14 00:44:00
2699
原创 前端_横向导航栏和商务表格
横向导航栏和商务表格一 、制作横向导航栏实现效果使用标签基本布局问题关键总代码二、商务风格表格的设计与实现实现效果使用标签基本布局问题关键总代码一 、制作横向导航栏实现效果使用标签<ul> <li></li></ul>a:hover基本布局<body> <h4>导航栏菜单的设计与实现</h4> <hr /> <ul> <li
2022-04-14 00:18:45
2512
原创 计算机组成_第一章计算机系统概述
计算机系统概述一 、计算机硬件的基本组成早期冯诺依曼机特点现代计算机的结构小结二、认识各个硬件部件主存储器的基本组成运算器的基本组成控制的基本组成计算机的工作过程过程小结小结三、计算机系统的层次结构三种级别的语言小结四、计算机的性能指标CPU的性能指标系统整体的性能指标基准程序五、问题一 、计算机硬件的基本组成冯诺依曼 ,提出存储程序早期冯诺依曼机输入设备:将信息转换成机器能识别的形式存储器:存放数据和程序运算器:算术运算 逻辑运算输出设备:将结果转换成人们熟悉的形式控制器:指挥程序运行
2022-04-14 00:14:40
344
原创 java_批量处理图片转文字
java_批量处理图片转文字开发原因:最近前端老师布置作业,要求把书上的一章所有案例都抄一遍。本着借鉴的态度,在网上找了一圈资源,没有找到前端书上的案例源代码。因为有扫描版的书籍的pdf文件,想到可以用qq截图的文字扫描功能来复制粘贴。问题来了,这需要依次截图几十张,又要手动创建几十个html文件,又需要手动复制粘贴,麻烦。可不可以只需要一堆截图,一个程序,就可以直接生成好所有的html文件。开干💪环境需要如下:java1.8+阿里云文字识别接口文字识别需要接口来实现,这里选择了阿里云文字识
2022-03-16 01:28:53
2023
原创 LinkedList的各种方法
LinkedList常用于栈和队列的模拟,经常在算法题中遇见,所以一次性将LinkedList的方法总结一下。public E getFirst() 返回此列表中的第一个元素。public E getLast() 返回此列表中的最后一个元素。public E removeFirst() 移除并返回此列表中的第一个元素。public E removeLast() 移除并返回此列表中的最后一个元素。public void addFirst(E e) 在此列表的开始处插入指定的元素。public vo
2021-12-23 19:45:06
2074
原创 springboot依赖下载失败报错
在gitee上引入了一段代码,下载之后,pom.xml一直爆红,搜索各种方法均失败。想起来以前除了idea的内置maven,还另外下载了一个maven,换上maven home directory后成功解决问题
2021-12-07 16:28:04
1290
原创 MyBatis-plus 分页功能实现
MyBatis-plus 分页功能实现一 、环境背景二 、配置MyBatis-plus的内置分页类三、场景应用——文章列表分页3.1 核心函数3.2 过程分析3.3 实例代码一 、环境背景Springboot下实现博客的文章列表分页二 、配置MyBatis-plus的内置分页类为了让springboot得知我们配置了分页功能,需要创建配置类,进行以下配置增加注解@configuration 标注为配置注解@MapperScan mybatis扫包,标注配置的应用包位置@Configu
2021-12-07 10:55:52
10021
原创 JAVA网络编程——双用户聊天室实现
双用户聊天室实现实现方案基本说明user1user2代码实现测试拓展——增加user3测试实现方案TCP + 多线程基本说明user1user1 实际上是作为服务器端,在本机暴露9999端口,使用accept()函数实现监听,需要先开始user1的程序,再开启user2程序。user1有类 user1_send 和 user1_listen 分别负责发送和监听。user2user2 实际上是作为客户端,使用Socket(“127.0.0.1”,9999)设置目标地址和端口,发送连接请求。u
2021-11-24 13:43:58
2043
原创 JAVA——TCP和UDP编程
TCP和UDP编程InetAddress类相关方法案例Socket基本介绍TCP网络编程基本介绍案例UDP网络编程基本介绍基本流程案例InetAddress类相关方法获取本机InetAddress 对象 getLoacalHost根据指定主机名/域名获取 ip 地址对象 getByName获取InetAddress对象的主机名 getHostName获取InetAddress对象的地址 getHostAddress案例//获取本机 InetAddress 对象 getLocalHost
2021-11-24 10:59:46
1001
原创 集合(四)Collections
集合(四) Collections集合实现类的选择在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行选择,分析如下先判断存储的类型一组对象[单列]:Collection接口允许重复:List 增删多:LinkedList[底层维护了一个双向链表] 改查多:ArrayList[底层维护Object类型的可变数组]不允许重复:Set 无序:HashSet [底层时HashMap,维护了一个哈希表(即数组+链表+红黑树)] 排序:TreeSet
2021-11-16 15:34:22
385
原创 集合(三)Map
集合(三)MapMapMap接口特点源码分析常用方法遍历方式HashMap小结:扩容机制源码解读hashmap扩容树化触发resize()函数源码Hashtable基本介绍与hashMap的对比Properties基本介绍TreeMap底层分析问题MapMap接口特点Map和Collection并列存在。用于保存具有映射关系的数据:Key-ValueMap 中的key 和 value 可以实任何引用类型的数据,会封装到HashMap$Node对象中Map中的key不允许重复,原因和Ha
2021-11-16 15:34:06
511
原创 集合(二)Set
Setset接口基本介绍无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个nullJDK API和Set接口的实现类:常用方法:和List一样,Set接口也是Collection的子接口,因此,常用方法和Collection接口一样遍历方式同Collection的遍历方式一样,因为Set接口是Collection接口的子接口可以使用迭代器增强for不能使用索引的方式来获取HashSet基本说明HashSet实现Set接口HashSet实际上
2021-11-16 15:32:43
430
原创 集合(一)List
集合(一)ListIDEA部分快捷键集合框架体系collectioncollection接口实现类的特点方法示例遍历元素方式1 - 使用Iterator(迭代器)基本特点调用模板遍历元素方式2 - 使用for 循环增强基本语法示例List基本说明List的主要方法示例List的三种遍历方式Arraylist注意事项add底层操作机制源码分析源码构造add()Vector基本说明底层解读vector与ArrayList对比LinkedList说明底层操作机制与ArrayList的比较如何选择ArrayList
2021-11-16 15:31:01
630
1
原创 java_多线程基础
多线程基础相关概念程序进程线程基本使用创建方式应用案例线程理解Thread 和 Runnable区别线程终止线程常用方法常用方法第一组常用方法第二组用户线程和守护线程线程的生命周期Synchronized同步原理互斥锁线程死锁释放锁相关概念程序某种语言编写的一组指令的集合进程是指运行中的程序。是程序的一次执行过程,或是正在运行的一个程序。是动态过程:有它自身的产生、存在和消亡的过程线程线程是由进程创建的,是进程的一个实体一个进程可以拥有多个线程基本使用创建方式继承Thre
2021-11-15 22:31:12
281
原创 计算机网络_网络层
计算机网络_网络层网络层计算机网络_网络层1. 网络层概述1)任务2)解决问题2. 网络层提供的两种服务1)面向连接的虚电路服务2)无连接的数据报服务3)对比3. MAC地址、IP地址以及ARP协议1)MAC地址2)IP地址a. 与MAC的联系3)数据报转发过程中IP地址和MAC地址的变化情况4)地址解析协议ARPa. 概述b. 高速缓存类别c. ARP的作用范围d. 案例4. IP数据报首部格式1)版本2)首部长度、可选字段和填充字段首部长度可选字段填充字段3)区分服务4)总长度5)标识、标志和片偏移标
2021-11-10 17:36:15
4268
原创 计算机网络_运输层
运输层1. 运输层概述通信的真正实体是位于通信两端主机的进程,运输层协议又称为端到端协议1)任务如何为运行在不同主机上的应用进程提供直接的通信服务运输层向高层用户屏蔽了下面网络核心的细节,它使应用进程看见的就好像是在两个运输层实体之间有一条端对端的逻辑通信信道2)种类面向连接的TCP面向无连接的UDP2. 运输层端口号、复用和分用的概念1)端口号作用为了使得运行不同操作系统的计算机的应用进程之间能够进行网络通信,就必须使用统一的方法对TCP/IP体系的应用进程进行标识。运行在
2021-10-12 23:08:47
4392
1
原创 计算机网络_应用层
应用层1、应用层概述1) 各层的对比2) 应用文本应用万维网即时通信,P2P文件共享电子邮件多媒体网络应用2、域名系统DNS1) 作用域名和网络地址都可以访问应用,而域名方便记忆,而不用IP地址访问。2) 客户机搜索网址的过程在高速缓存中查找www.hnust.cn对应的IP地址如果没找到,往网络中的某台DNS服务器查询(DNS服务器中有域名和IP地址映射关系的数据库)当DNS收到查询请求后,在数据库中查询,将查询到的IP地址发送给用户主机用户主机的浏览器可以通过WE
2021-10-08 15:22:18
934
原创 Your shell has not been properly configured to use ‘conda activate‘
今天在终端激活conda环境时遇到的报错CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.To initialize your shell, run $ conda init <SHELL_NAME>Currently supported shells are: - bash - fish - tcsh - xonsh - zsh
2021-10-07 11:55:04
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人