• python多核处理器算力浪费现象解决

    目录 前言 IO密集型 计算密集型 前言 我们都知道python因为其GIL锁导致每一个线程被绑定到一个核上,导致python无法通过线程实现真正的平行计算.从而导致大量的核算力的浪费.但是 concurrent.futures模块,可以利用multiprocessing实现真正的平行计算. 但是在提高python的计算性能前,首先要明白自己的程序目前是什么类型? 对于不同类型的程序,如果安装下述方法进行改造,可能效率并不会提高. IO密集型:读取文件,读取网络套接字频繁. 计算密集型:大量消耗

    2023-09-25
  • node-sass安装失败的原因与解决方法

    前言 我们一般在利用npm 安装 node-sass 依赖时,会从 github.com 上下载 .node 文件.由于国内网络环境的问题,这个下载时间可能会很长,甚至导致超时失败. 这是使用 sass 的同学可能都会遇到的郁闷的问题. 解决方案就是使用其他源,或者使用工具下载,然后将安装源指定到本地. 解决方法一:使用淘宝镜像源 设置变量 sass_binary_site,指向淘宝镜像地址.示例: npm i node-sass --sass_binary_site=https://npm.t

    2023-09-25
  • TortoiseGit的安装与配置教程

    1.为什么选择Git 效率 很多人有一种习惯吧,什么软件都要最新的,最好的.其实吧,软件就是工具,生产力工具,为的是提高我们的生产力.如果现有的工具已经可以满足生产力要求了,就没有必要换了.生产效率高低应当是选择工具的第一位. 历史 开源世界的版本控制系统,经历了这么几代: 第一代,CVS,开创性的产品,至今很多古老项目仍在使用,但存在不少设计上的缺陷. 第二代,SVN,在CVS基础上大幅度改进,很快就取代了CVS的地位,现在的项目数量仍然非常庞大,而且SVN的缺陷不算多,很多商业项目似乎没有迁

    2023-09-25
  • Python 循环结构详解

    目录 一.While循环 二.While…else…循环 三.for循环 四.for…else…循环 五.循环体结束语句 六.嵌套循环 前言: 在编写代码时如果能够简化一个程序,把重复的代码形成公共部分,利用语法来控制,对代码进行循环往复的执行,这就形成了循环结构逻辑. 一.While循环 While循环的语法格式如下: while 条件表达式 :    代码段(包含改变计数器值的语句) while 关键词后面紧跟的条件表达式决定了循环是够进行下去. 下面用while语句实现求1-100的累加和

    2023-09-25
  • java 相交链表的实现示例

    目录 1.题目 2.分析 3.完整代码 1.题目 相交链表:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null .相交链表 2.分析 相交链表是Y字型,next域相同. 定义两个引用pl和ps, 如果每个链表相交结点前长度相同,一步一步走,直到相同就找到了相交结点.如果长度不一样,首先要长链表先走差值步,然后再一人走一步直到相遇 长度不同: 长度相同: 首先求长度,先假设pl指向headA: ListNode pl

    2023-09-25
  • java垃圾回收之实现并行GC算法

    Parallel GC(并行GC) 并行垃圾收集器这一类组合, 在年轻代使用 标记-复制(mark-copy)算法, 在老年代使用 标记-清除-整理(mark-sweep-compact)算法.年轻代和老年代的垃圾回收都会触发STW事件,暂停所有的应用线程来执行垃圾收集.两者在执行 标记和 复制/整理阶段时都使用多个线程, 因此得名“(Parallel)”.通过并行执行, 使得GC时间大幅减少. 通过命令行参数 -XX:ParallelGCThreads=NNN 来指定 GC 线程数. 其默认值

    2023-09-25
  • Yii2基于Ajax自动获取表单数据的方法

    本文实例讲述了Yii2基于Ajax自动获取表单数据的方法.分享给大家供大家参考,具体如下: 这里有两张表,表结构如下,locations表存放的省份和邮编等信息,两张表的model和curd均使用gii生成 yii2advanced.customers表 customer_id:int(11) customer_name:varchar(100) zip_code:varchar(20) city:varchar(100) province:varchar(100) yii2advanced.l

    2023-09-25
  • C++移动操作,RVO和NRVO详细

    目录 一.移动操作 1.移动操作有关的函数 2.何时自动声明移动构造函数和赋值移动构造函数 3.何时自动移动 二.复制消除.RVO和NRVO 1.复制消除 2.RVO和NRVO 移动操作主要参考了cppreference 的这个说明, 优化部分的主要的参考来自于stack overflow 的这篇文章 一.移动操作 1.移动操作有关的函数 和移动操作相关的类函数有两个 移动构造函数: A(A&& rhs); 移动赋值运算符: A& operator=(A&& rhs

    2023-09-25
  • C++控制台绘图头文件实例代码

    目录 简介 函数介绍 1.init(int x, int fz) 2.fill(concol color) 3.update() 4.getmousepos(pos & p) 5.gt(int x, int y) 6.HideCursor() 7.settextcolor(concol color) 8.setbackcolor(concol color) 9.rect(int sx, int sy, int ex, int ey, concol color) 10.line(int sx, i

    2023-09-25
  • C++并查集算法简单详解

    目录 1.并查集的初始化 2.并查集的查找操作 3.并查集的合并操作 4.为什么要路径压缩? 5.实现路径压缩 总结 1.并查集的初始化 并查集是用一个数组实现的.首先先定义一个数组: int father[N]; father[i]表示元素i的父亲结点. 接下来进行初始化.一开始,每个元素都分别是独立的一个集合,父亲结点就是它自己,所以初始化时将所有father[i]等于i: for(int i = 1; i <= N; i++){ father[i] = i; } 这样,就将father数组

    2023-09-25
  • JavaScript那些不经意间发生的数据类型自动转换

    目录 数据类型 自动转换 什么时候会发生自动转换? 对数据类型有期待的表达式和运算符 对象包装 自动转换规则 any->boolean any->number any->string 总结 JavaScript可以自由的进行数据类型转换,也提供了多种显式转换的方式.但是更多的情况下,是由JavaScript自动转换的,当然这些转换遵循着一定的规则,了解数据类型自由转换的规则是非常必要的. 数据类型 聊到数据类型转换,就不得不提到 JavaScript 的数据类型:原始类型( Number

    2023-09-25
  • Java中的Unsafe在安全领域的使用总结和复现(实例详解)

    目录 0前言 1基本使用 1.1内存级别修改值 1.2创建对象 1.3创建VMAnonymousClass 2利用姿势 2.1修改值以关闭RASP等防御措施 2.2创建NativeLibrary对象实现webshell 2.3匿名的内存马 2.4shellcode和instrumentation对象构建 3总结 参考: 总结并复现了一下Unsafe在安全领域的一些应用 0 前言 unsafe里面有很多好用的方法,比如allocateInstance可以直接创建实例对象,defineAnonymo

    2023-09-25
  • Vue组件设计-Sticky布局效果示例

    目录 Vue组件设计-Sticky布局 1. 效果示例 2. 组件封装 3. 组件使用 Vue组件设计-Sticky布局 Sticky布局即为粘性定位,常见于一些重要的页面区域在向上滚动时不会被卷起来,在CSS中可以通过设置position:sticky来实现这一功能,但是如果出于兼容性考虑或是一些复杂的场景,就需要我们用传统的方法来实现,以下基于Vue封装一个组件给大家参考. 1. 效果示例 2. 组件封装 <template> <div :style="{height:he

    2023-09-25
  • Android如何使用GestureDetector进行手势检测详解

    目录 1.引言 2.进行手势检测 2.1 创建GestureDetector 2.2 与onTouchEvent结合使用 2.3 GestureDetector.OnGestureListener 2.4 检测双击手势 2.5 GestureDetector.SimpleOnGestureListener 3.总结 1.引言 在操作应用的时候,会有很多不同的手势操作,如按下.单击.双击.长按等手势,我们可以在这些手势事件中添加相应的业务逻辑,那么如何检测不同的手势操作就比较重要了,本文将带大家了

    2023-09-25
  • python进阶之协程你了解吗

    目录 协程的定义 协程和线程差异 协程的标准 协程的优点 协程的缺点 python中实现协程的方式 async&await关键字 事件循环 协程函数和协程对象 await Task对象 asyncio.Future对象 futures.Future对象 异步迭代器 什么是异步迭代器? 什么是异步可迭代对象? 异步上下文管理器 uvloop 异步redis 异步MySQL 爬虫 总结 协程的定义 协程(Coroutine),又称微线程,纤程.(协程是一种用户态的轻量级线程) 作用:在执行 A 函数

    2023-09-25
  •  typeScript入门基础介绍

    目录 一.安装 TS 二.Vscode 自动编译 ts 三.入门 TS 基础数据类型 接口 类 TS 的特点: 始于 javaScript 归于 javaScript . 强大的类型系统. 先进的 javaScript . 适合开发大型项目,编译成纯 js 代码,js 可以运行在任何浏览器上. typeScript 是区分大小写的一门语言,本篇文章主要带你了解 ts 的安装,环境配置,以及简单的入门. 一.安装 TS 使用之前需要安装: npm install -g typescript 安装完

    2023-09-25
  • Mysql索引结合explain分析示例

    目录 简介 1.索引分类 聚簇索引 为什么选择B+树 explain 简介 Mysql 在我们项目中使用是非常广的,当我们数据量大的时候,就需要考虑建立索引了,我感觉这也是一种以空间换时间的方式:在我们查询的时候,通过使用索引来提高速度:那么,我们在使用的过程中,怎么判定有没有走索引呢?有一个explain语句来进行分析,根据阿里的Java编程规范,至少类型要提升到range;我那时候就在想为什么要提升到range呢?后来结合Mysql的索引终于知道explain和Mysql底层B+树的对应关系

    2023-09-25
  • C#使用HttpHelper框架重启路由器

    首先声明,不是所有路由器都可以通过下面的代码来让路由器执行重启. 下面的代码测试的路由器是(TP-LINK TD-W89841N增强型).要根据自己的路由器来写代码. using CsharpHttpHelper; //引用HttpHelper类库 using System; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { HttpHelper

    2023-09-25
  • 解决在Gradle/IDEA中无法正常使用readLine的问题原因

    Gradle的标准输入默认并不与系统标准输入绑定,需手动设置 参考: https://stackoverflow.com/questions/13172137/console-application-with-java-and-gradle 问题 在Gradle构建的控制台程序中,标准输入readLine总是返回null 原因 Gradle的标准输入默认并不与系统标准输入绑定,需手动设置 解决方法 在build.gradle.kts中添加 tasks.named<JavaExec>("

    2023-09-25
  • Shell 命令启动Docker Container的实现

    Linux虚拟机重启后,都要手动启动多个Docker Container,着实麻烦,使用Shell命令可以减去这个麻烦. 创建文件,添加可执行权限 touch startcontiner.sh chomd +x startcontainer.sh 编写startcontainer.sh #!/bin/sh                           #chkconfig: 35 90 80                #description: start docker contain

    2023-09-25