Android启动流程源码分析(基于Android S)
从上图我们可以清楚的看到Android系统的启动分为以下几个步骤
-
启动电源以及启动系统
当我们按下电源键时, 引导芯片代码开始从预定义的地方(固化在ROM)开始执行, 加载引导程序到RAM, 然后执行
-
引导程序
引导程序是在Android操作系统开始运行前的一个小程序. 引导程序是运行的第一个程序, 因此它是针对特性的主板和芯片的. 设备制造商要么使用很受欢迎的引导程序比如redboot, uboot, qi bootloader或者开发自己的引导程序, 在此注意一下, 引导程序并不是Android操作系统的一部分. 引导程序是OEM厂商或运营商加锁和限制的地方.
引导程序分为两个阶段执行.
第一: 检查外部的RAM以及加载对第二阶段有用的程序
第二: 引导程序设置网络, 内存等等. 这些对于运行内核是有必要的. 为了达到特殊的目标, 引导程序可以根据配置参数或者输入数据设置内核.
传统得加载器主要是2个文件:
/external/arm-trusted-firmware/lib/romlib/init.s
这个主要是初始化堆栈, 清零BSS段, 调用main.c的_main()函数
/external/rootdev/main.c
初始化硬件(闹钟,主板,键盘, 控制台等), 创建Linux标签
-
内核
Android内核与桌面Linux内核的启动方式差不多, 内核启动时, 设置缓存 被保护的存储器 计划列表 加载驱动. 当内核完成系统设置时, 它首先在系统文件中寻找"init"文件, 然后启动root进程或者系统的第一个进程(据我之前的了解这个进程叫idle进程, pid=0, 如有记错的话请大家指出)
-
init进程
init进程是Linux系统中用户空间的第一个进程, 进程号固定为1. Kernel启动后, 在用户空间启动init进程, 并调用init中的main()方法执行init进程的职责
-
启动Launcher App
init进程分析
init进程是Android系统中及其重要的用户空间的第一个进程. 接下来我们看看init进程做了些什么事情.
-
创建和挂载启动所需要的目录文件
-
初始化和启动属性服务
-
解析init.rc配置文件并启动Zygote进程
比较重要的两个文件
/system/core/init/init.cpp
/system/core/rootdir/init.rc
在这里init.cpp里面干了啥我们就不去详细解析了, 有兴趣得同学自己去研究
init.rc解析
init.rc是什么? 它是一个非常重要的配置文件, 由android初始化语言(Android Init Language)编写的脚本, 它里面包含了Action, Service, Command, Options. 这里就不过多讲解, 有兴趣了解的同学自己google
Zygote
-
Zygote概述
Zygote的翻译为"受精卵", 如其名, 它的主要作用是用来孵化进程的, 在Android系统中主要有以下两种程序
Java应用程序---主要基于ART虚拟机, 所有的应用程序APK都是属于这一类程序
Native程序---也就是利用c/cpp开发的程序, 例如bootanimation.
所有的Java程序都以及系统服务进程SystemServer 都是由Zygote孵化而来的, 而native程序是由init程序创建启动的.
Binder 机制中存在 Binder 线程池, 是多线程的, 如果 Zygote 采用 Binder 的话就存在上面说的 fork() 与 多线程的问题了。 其实严格来说, Binder 机制不一定要多线程, 所谓的 Binder 线程只不过是在循环读 取 Binder 驱动的消息而已, 只注册一个 Binder 线程也是可以工作的, 比如 service manager 就是这样的。 实际 上 Zygote 尽管没有采取 Binder 机制, 它也不是单线程的, 但它在 fork() 前主动停止了其他线程, fork() 后重 新启动了。
-
Zygote触发过程.
之前介绍了Zygote,那么Zygote是怎么被唤起来的?
在init.rc中, 上面有这一行代码:
import /system/etc/init/hw/init.${ro.zygote}.rc
${ro.zygote}这个会被替换成ro.zygote对应的属性值, 这个是由不同厂商自己定制的, 有4个值:
-
zygote32: zygote进程对应的执行程序是app_process(纯32bit模式)
-
zygote64:zygote进程对应的执行程序是app_process64(纯64bit模式)
-
zygote32_64: 启动两个zygote进程(名为zygote和zygote_secondary), 对应的执行程序是app_process32(主模式), app_process64
-
zygote64_32: 启动两个zygote进程(名为zygote和zygote_secondary), 对应的执行程序是app_process64(主模式), app_process32
Start zygote
system/core/rootdir/init.rc 960L
# It is recommended to put unnecessary data/ initialization from post-fs-data
# to start-zygote in device's init.rc to unblock zygote start.
on zygote-start && property:ro.crypto.state=unencryptedwait_for_prop odsign.verification.done 1# A/B update verifier that marks a successful boot.exec_start update_verifier_nonencryptedstart statsdstart netdstart zygotestart zygote_secondaryon zygote-start && property:ro.crypto.state=unsupportedwait_for_prop odsign.verification.done 1# A/B update verifier that marks a successful boot.exec_start update_verifier_nonencryptedstart statsdstart netdstart zygotestart zygote_secondaryon zygote-start && property:ro.crypto.state=encrypted && property:ro.crypto.type=filewait_for_prop odsign.verification.done 1# A/B update verifier that marks a successful boot.exec_start update_verifier_nonencryptedstart statsdstart netdstart zygotestart zygote_secondary
app_processXXX对应的位置为:out/target/product/xxx/system/bin
源位置app_process 中有一个比较重要的文件:::::/frameworks/base/cmds/app_process/app_main.cpp
L336 runtime.start("com.android.internal.os.ZygoteInit", args, zygote);
这里, 就是由native的世界进入java世界的地方, 在此之前都是native和kernel的世界.
这里有个很重要的东西AppRunTime 从代码上看, 它是AnroidRunTime的子类, 也就是Android中比较核心的一个东西叫作ART /frameworks/base/core/jni/AndroidRunTime.cpp
既然是是进入了java世界, 那我们不是应该有虚拟机吗? 虚拟机是在哪里搞出来的?
AndroidRunTime.cpp start()函数中的L1246
if (startVm(&mJavaVM, &env, zygote, primary_zygote) != 0) {return;}onVmCreated(env);/** Register android functions.*/if (startReg(env) < 0) {ALOGE("Unable to register all android natives\n");return;}
我们可以看到, 这里ART先给我们干了两件事 启动java虚拟机, 然后注册JNI
然后呢? 不是说好进入java世界的吗? 只干这个可不行, start函数L1287
jclass startClass = env->FindClass(slashClassName);if (startClass == NULL) {ALOGE("JavaVM unable to locate class '%s'\n", slashClassName);/* keep going */} else {jmethodID startMeth = env->GetStaticMethodID(startClass, "main","([Ljava/lang/String;)V");if (startMeth == NULL) {ALOGE("JavaVM unable to find main() in '%s'\n", className);/* keep going */} else {env->CallStaticVoidMethod(startClass, startMeth, strArray);#if 0if (env->ExceptionCheck())threadExitUncaughtException(env);
#endif}}
OK, 我们应该都能看到了, 这里是通过反射去调用某个类的main方法, 哪个类? OK, 之前在app_main里面那一行 runtime.start 传进来的参数是ZygoteInit, 就是调的它.. 从这里.我们真正的进入了Java的世界
/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
zygoteServer = new ZygoteServer(isPrimaryZygote);if (startSystemServer) {Runnable r = forkSystemServer(abiList, zygoteSocketName, zygoteServer);// {@code r == null} in the parent (zygote) process, and {@code r != null} in the// child (system_server) process.if (r != null) {r.run();return;}
}Log.i(TAG, "Accepting command socket connections");// The select loop returns early in the child process after a fork and
// loops forever in the zygote.
caller = zygoteServer.runSelectLoop(abiList);
pid = Zygote.forkSystemServer(parsedArgs.mUid, parsedArgs.mGid,parsedArgs.mGids,parsedArgs.mRuntimeFlags,null,parsedArgs.mPermittedCapabilities,parsedArgs.mEffectiveCapabilities);/* For child process */
if (pid == 0) {if (hasSecondZygote(abiList)) {waitForSecondaryZygote(socketName);}zygoteServer.closeServerSocket();return handleSystemServerProcess(parsedArgs);
}
这里对怎么启动SystemServer就不去过多的赘述了, 大概的套路是一样的, Zygote调用的是nativeFork之类的方法, 然后通过反射调用到SystemServer的main, 大概就是这个套路
当SystemServer启动完成之后, 当SystemReady, 就会启动Launcher, 到此 Android的大体启动流程到此结束
下面给出Zygote的流程图
我们都知道, 当我们点到Launcher中的某个icon要启动某个app的时候, Launcher通过Binder和AMS通信, AMS如果发现当前没有这个进程,则通知Zygote fork一个进程,然后AMS再通过Binder与ActivityThread进行交互, 这里不深究交互细节, 抛出一个问题: 既然Binder是Android中很重要的IPC, 那为什么Zygote和SystemServer之间用Socket通信? 用Binder是不是会更好?
其实并不然, Binder固然是好, 基于mmap能达到在内存中只做一次拷贝.. 但是Binder是多线程的.. 多线程环境下fork会不会出问题? 答案是肯定的.
别说什么在fork之前暂停所有线程, fork完之后再启动之类的话.. 这只是其中一个规避方案而已.
大家可以了解下 unix3 c++程序设计守则,
https://blog.csdn.net/wallwind/article/details/7036733
这个守则中有明确说明, 多线程程序里不准使用fork, 多线程环境下fork可能会导致死锁
Binder 机制中存在 Binder 线程池, 是多线程的, 如果 Zygote 采用 Binder 的话就存在上面说的 fork() 与 多线程的问题了。 其实严格来说, Binder 机制不一定要多线程, 所谓的 Binder 线程只不过是在循环读 取 Binder 驱动的消息而已, 只注册一个 Binder 线程也是可以工作的, 比如 service manager 就是这样的。 实际 上 Zygote 尽管没有采取 Binder 机制, 它也不是单线程的, 但它在 fork() 前主动停止了其他线程, fork() 后重 新启动了。
浅谈fork()导致死锁的原因
复制整个用户空间的数据(通常使用 copy-on-write 的策略, 所以可以 实现的速度很快) 以及所有系统对象, 然后仅复制当前线程到子进程。这里: 所有父进程中别 的线程, 到了子进程 中都是突然蒸发掉的 对于锁来说, 从 OS 看, 每个锁有一个所有者, 即最后一次 lock 它的线程。 假设这么一个环境, 在 fork 之前, 有 一个子线程 lock 了某个锁, 获得了对锁的所有权。 fork 以后, 在子进程中, 所有的额外线程都人间蒸发了。 而锁却 被正常复制了, 在子进程看来, 这个锁没有主人, 所以没有任何人可以对它解锁。 当子进程想 lock 这个锁时, 不再有任何手段可以解开了。 程序发生死锁
init脚本语言相关
https://blog.csdn.net/chaihuasong/article/details/50456113
汇编指ARM指令集
https://blog.csdn.net/TuxedoLinux/article/details/111462307
Unix c++程序设计守则
https://blog.csdn.net/xiaohangyu/article/details/3341135
Linux 进程托孤
沙盒机制
init脚本语言属性
Copy-on-write
mmap
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4506543.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
要毕业了,我应该做点啥?
这几天是高考的日子,高考结束,也意味着有很多人要离开学校,距离我毕业已经过去很多年了,现在还能记得那些无忧无虑的日子,毕竟人这一辈子,能这么肆无忌惮的时间并不多。最近因为发了几个不错的岗位招聘&…...

Effie:陪你守候那些观影岁月
寻影启事 乔托 卡努杜将电影定义为第七大艺术已经过去了一百年,电影从一种有几帧图片组成的动画发展为一种能够综合其他诸如建筑,绘画,音乐的艺术形式的存在。这赋予电影艺术极强的表现力,让他能够超越其他的艺术的表现手段。如…...

好多流行歌曲的英文版
好多流行歌曲的英文版 2009年12月13日中文/英文翻唱的歌,大家有兴趣可以在网上搜索下载听听吧!01 im singing in the sky 中文原唱:容祖儿《我的骄傲》 02 u make me wanna 中文原唱:萧亚轩 03 brown eyes 中文原唱:s…...

freemaker word转html,ftl文件-word文档转化成ftl文件
word模版,另存成test.xml,然后修改参数。将test.xml改为test.ftl.然后用网上的这段代码生成word文档。打开时总是提示如下图(数据填入正确)publicvoidcreateDoc(){//要填入模本的数据文件MapdataMapnewHashMap();getData(dataMap);//设置模本装置方法和路…...

形参化类 ‘PageHelper‘ 的原始使用
PageHelper cars carService.getCars(page, size);更改为 PageHelper<?> cars carService.getCars(page, size);...

从0到1 拿下C语言——绪论(计算机的组成、进制转换、算法表示、程序结构、C语言基本词汇)
关注一下阿酱趴!😃😃😃 前言: 🙆♂️ 作者简介:一碗黄豆酱 🙆♂️ 给大家带来快乐的就是阿酱我! 🎈 CSDN 勤写标兵!、上兰村编程小能手&…...

2018未来科学大奖揭晓:袁隆平、马大为、林本坚等7位科学家获奖
整理 | 非主流 出品 | AI科技大本营 9 月 8 日下午,第三届未来科学大奖在北京公布最终获奖者,李家洋、袁隆平、张启发获生命科学奖;马大为、冯小明、周其林获物质科学奖;林本坚获数学与计算机科学奖。 ▌2018 生命科学奖 获奖评语…...

拒绝驼背!每天2小时,直腰开背,呵护脊椎,21天挺拔身姿!
©程序员严选 丨为您甄选全球好物你知道含胸驼背有多丑吗?就连颜值高的明星们也逃脱不了驼背带来的丑陋!不仅影响仪态,还会收缩身高,严重的能将1米65驼成1米5……驼背,还包含:含胸、圆肩、探头…...

JVM-14(垃圾回收概述)
目录 14.1什么是垃圾 14.1.1 前提知识 14.1.2大厂面试题 14.1.3什么是垃圾 14.2 为什么需要GC 14.3 早期垃圾回收 14.4 Java垃圾回收机制 14.4.1 前提知识 14.4.2 担忧 14.2 应该关心哪些区域被回收 14.1什么是垃圾 14.1.1 前提知识 垃圾收集,不是Java语言的伴生产…...

LED
1、LED称为发光二极管,特性之一是单向导电性。LED外形也不同,有高有短。帽高的LED可把LED光线聚焦在正前方,形成圆形光柱,如手电筒的光柱,这种LED称为“聚光”LED,由于常用,也叫普通LED。帽短LE…...

web文件服务器1台,WEB服务器及配件1台 - 千里马招标网
WEB服务器及配件 主要参数:WEB服务器技术参数: 功能及技术指标 单台设备技术要求(★为关键指标,不允许负偏离) 总体 要求 ★资质认证 制造厂商须具备有害物质过程管理体系认证证书,以确保生产过程中对环境的低损耗,提供…...

Server.obj : error LNK2019: unresolved external symbol “public: stati
一直报错找不到符号,可以在VS的文件目录列表找到此文件,看一下是否有个红色的点,右键点击加入到项目后就不报这个错误了。...
《不要放弃》阿里巴巴创业纪录片,观后感想!
视频地址: http://v.youku.com/v_show/id_XMTYyMDQzMzg0NA.html?froms1.8-1-1.2 why? 20岁的贪玩,造就了30岁的无奈。 30岁的无奈,导致了40岁的无为。 40岁的无为,奠定了50岁的失败。 50岁的失败,酿造了一辈子的碌…...

Java并发编程实战~生产者-消费者模式
前面我们在《Worker Thread 模式》中讲到,Worker Thread 模式类比的是工厂里车间工人的工作模式。但其实在现实世界,工厂里还有一种流水线的工作模式,类比到编程领域,就是生产者 - 消费者模式。 生产者 - 消费者模式在编程领域的…...

python julia_从Julia角度看机器学习的python经验
python juliaI recently went through some machine learning training with Python, and wanted to reflect a bit on how I experienced that when comparing it with my experience with Machine Learning in Julia.最近,我接受了一些使用Python进行的机器学习培…...

一、非对称密码和RAS基本知识
一、非对称密码 1.基本介绍 又被称为公钥密码体制或是双密钥密码体制基于数学函数而不是代替和换位操作由两个密钥形成一个密钥对,其中一个密钥为密钥拥有者保管(私钥),另一个密钥公开(公钥)。支持数字签名,用两个密钥中的任何一个加密的内…...

前端面试常见问题小总结(更新中)
1.什么是mvvm 、 mvc 模型? mvvm 简单理解的mvvm (模型-视图-控制器)m:可以理解成模块 v:可以理解成视图 vm: 可以理解成v-model ,它是一种双向数据绑定的模式,用viewModel来建立起model数据层和view视图层的连接&a…...
Android Jni OpenCV-绘制朱利亚(Julia)集合图形
一,java代码,收集Bitmap 信息 private Button btnProc; private ImageView imageView; private Bitmap bmp;// Used to load the native-lib library on application startup. static {System.loadLibrary("native-lib"); }Override protect…...

苹果与Windows双系统时间不同步的解决办法
步骤:打开C盘>Windows>System32,找到cmd.exe,右键以管理员的身份运行。 Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 回车,OK,搞定&#x…...

栈实现十进制数转二进制数
使用JS实现 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-widt…...

可怕!数据库竟然打破安迪-比尔定律
CynosDB是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件的优势,100%兼容开源数据库,百万级QPS的高吞吐,不限存储,价格仅为商用数据库的1/10。 Cynos源于拉丁语中的Cynosura࿰…...

SAE1939-1 用于公路设备的控制及通信网络推荐操作规程
路面车辆推荐操作规程(被采纳为美国国家标准) SAEJ1939-01: 用于公路设备的控制及通信网络推荐操作规程 前言 本系列SAE推荐操作规程是由卡车及客车电子电气委员会所属的卡车及客车控制及通信小组委员会制定的。该小组委员会的目标是针对电控…...

单片机学习笔记之点亮led 灯
使用开发板: 普中科技开发板 编译软件: keil 简单复习一下发光二极管(led),发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。具有单向导电性…...

JDK8新特性之Stream流【小白快速上手,没有技巧全是实操-LOL英雄类讲解不失趣味】
前言 摘取自jdk1.8官方文档对于Stream类定义的谷歌翻译 流管道由源(可能是数组、集合、生成器函数、I/O 通道等)、零个或多个中间操作(将流转换为另一个流,例如 filter(Predicate) ) 和终端操作(产生结果或副作用&…...

前端——周总结系列二
1 JS数组排序sort()方法 不传参数排序,默认根据Unicode排序 附录 传参数,使用比较函数,自己定义比较规则 简单数组排序 // 升序 function ascSort(a, b) {return a - b; } // 降序 function ascSort(a, b) {return b - a; }数组对象排序…...

错误代码0x80004005
错误代码0x80004005 在上网时突然发现自己登得上QQ,却无法打开浏览器怎么办? 更新注册表方式并不使用于所有电脑,对于一般用户而言,一步步排查的方式也很难完成修复,那么,有什么偷懒的办法呢?…...

【运筹学】整数规划 ( 整数规划示例 | 整数规划解决的核心问题 )
文章目录一、整数规划示例二、整数规划解决的核心问题一、整数规划示例 资金总额 B\rm BB , 有 nnn 个投资项目 , 项目 jjj 所需的投资金额 是 aja_jaj , 预期收益是 cjc_jcj , j1,2,⋯,nj 1,2,\cdots,nj1,2,⋯,n ; 投资还有以下附加条件 : ① 如果投资项目 111 , 必须投…...

如何判断一个LED节能灯的正负极
最常用的方法就是万用表检测法。用万用表检测发光二极管时,必须使用“Rl0k”档。困为发光二极管的管压降大约为3V,而万用表处于“Rlk” 及其以下各电阻挡时。表内电池仅为1.5V。低于管压降。无论正、反向接入,发光二极管都不可能导通…...

Method search not annotated with HTTP method type (ex
2.在项目里使用Feign的时候,是否采取了FeignConfig 配置方式,那么就需要注意是否FeignConfig里包含 代码: Bean public Contract feignContract(){ return new Contra 《一线大厂Java面试题解析后端开发学习笔记最新架构讲解视频实战项目源…...

Android | BroadcastReceiver
Android BroadcastReceiver BroadcastReceiver 概念 应用与 Android 系统或者其他应用之间可以相互收发广播消息,便于进行系统级别的消息通知。应用可以注册接收特定的广播。广播发出后,系统会自动将广播传送给同意接收这种广播的应用。 广播分类 标…...

运筹学问题用matlab解答,运筹学课程设计-用MATLAB和LINGO求解生产问题
运筹学课程设计-用MATLAB和LINGO求解生产问题 用MATLAB和LINGO求解生产问题 1 问题的提出 生产问题是一类常见的线性规划问题.在生产一种或多种产品的时候,面对多种可选择的资源有多种不同的生产方案,与此同时不同的生产方案可以带来不同的产品效益&…...
学习OpenCV2——绘制基本图形及文字
OpenCV中可以绘制的图形有直线、矩形、多边形、圆、椭圆。以及一个写文本的函数puttext 1. 基本函数 Line C: void line(Mat& img, Point pt1,Point pt2, const Scalar& color, int thickness1, int lineType8,int shift0)Parameters:img – 图像. pt1 – 线条起点. …...

数据结构与算法基础(王卓)(8):线性表的应用(并集和有序表合并)
PPT:第二章P173; 并集集合:线性表的合并(无需有序,不能重复) 线性表: Status Union(Sqlist& A, Sqlist& B)//并集 {int len_A A.length;int len_B B.length;for (int i 1; i < …...

OBS 插件推流以及日志模块
obs 推流 了解rtmp地址 Rtmp地址是直播数据上传地址,唯一指向单个的直播活动。它由rtmp://开头。 例如湖南卫视,rtmp://58.200.131.2:1935/livetv/hunantv obs软件的使用 参数设置 如上图,设置的话。服务器:rtmp://58.200.131…...

python 多线程编程并不能真正利用多核的CPU
GIL 与 Python 线程的纠葛 GIL 是什么东西?它对我们的 python 程序会产生什么样的影响?我们先来看一个问题。运行下面这段 python 程序,CPU 占用率是多少? # 请勿在工作中模仿,危险:) def dead_loop():while True: pas…...

Jwt隐藏大坑,通过源码帮你揭秘
我们都以为Jwt三部分是用`Base64`加密,其实不完全对,因为他确切的加密方式是`Base64Url`加密,没有深入理解的我们只以为就是纯粹的base64,而且在大部分情况下确实是这样,更加坚定了我们这种错误认知。而只有当Base64加密后出现字符`+`或`/`时,才会有所不同,希望对大家有帮…...

tomcat 启动时报Error starting static Resources错误
tomcat 启动时报Error starting static Resources错误解决方法: 1、停掉tomcat 2、删除 tomcat\conf\Catalina\localhost 下的文件 3、删除tomcat\work 下的Catalina文件夹 4、重新启动tomcat...
CUDA+OpenCV 绘制朱利亚(Julia)集合图形
Julia集中的元素都是经过简单的迭代计算得到的,很适合用CUDA进行加速。对一个600*600的图像,需要进行360000次迭代计算,所以在CUDA中创建了600*600个线程块(block),每个线程块包含1个线程,并行执…...

AUTOSAR从入门到精通100讲(二十六)-AutoSar之微控制器抽象层MCAL
微控制器抽象层位于AUTOSAR BSW的最底层,包含内部驱动,可直接访问微控制器和外设芯片。从具体应用来看,MCAL主要包括微控制器驱动、存储器驱动、通信驱动和输入输出驱动四个部分,各部分又由具体的与微控制器硬件相对应的驱动模块组成。 其实,从AUTOSAR官文中,MCAL还包含另…...
OpenCV绘制朱利亚(Julia)集合图形
朱利亚集合是一个在复平面上形成分形的点的集合。以法国数学家加斯顿朱利亚(Gaston Julia)的名字命名。 朱利亚集合可以由下式进行反复迭代得到: 对于固定的复数c,取某一z值(如z z0),可以得到…...

机器学习-勘误
如何使用本书(写在第十次印刷之际):[PDF] http://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/MLbook2016.htm 本书 2016 年 1 月底出版, 首印 5000 册一周内竟告售罄; 此后 8 个月重印 9 次, 累积 72000 册; 先后登上亚马逊、京东、当当网等的计算机类畅销书…...
spring boot 源码解析35-CacheStatisticsProvider,CacheStatistics
前言 讲过前面2篇文章的讲解,我们知道了spring boot 是如何集成spring cache的,那么我们接着来看一下org.springframework.boot.actuate.cache 中有关cache的实现.这部分的类图如下: 我们本文关于CacheStatisticsProvider的实现只讲解EhCacheStatisticsProvider,ConcurrentMap…...
钢琴--入门
我也不知道为什么,就是今天突然想记一下 简谱:1 2 3 4 5 6 7 8 音名:C D E F G H A B 五线谱...

Transformer 五年引用超四万,六位作者创立五家创业公司!
来源:机器之心时隔五年,Transformer 的八位作者仅有一位还留在谷歌。如果你在一家大厂做出了一份行业里程碑式的研究,那么接下来的职场生涯你会怎么走?继续留在这家大厂?换一家待遇更好的大厂?还是创业或加…...

怎么用计算机打出来自天堂的恶魔呢,来自天堂的恶魔
第一章 车祸7070年,美国的深夜一个身穿风衣的中国少年醉醺醺的靠着一辆名车与四个彪悍的美国人对立着,少年一头银白色的头发,在路灯的照射下可以看清少年的脸,那是一张简直如雕刻般完美的脸,让人找不出一丝缺陷&#x…...

美国盗版党(Pirate Party)
美国盗版党介绍 英文文本见:http://pirate-party.us/ 阮一峰 译 美国盗版党(The Pirate Party of the United States,PPUS)是模仿瑞典盗版党而建立的。后者的宗旨是"从根本上改革版权法,废除专利制度,确保公民的隐私权。&qu…...

HTML语言的规律,回文数的算式规律
什么叫回文数啊?一般简单的怎么计算啊?回文数是指一个像16461这样“对称”的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。这里,“回文”是指像“妈妈爱我,我爱妈妈”…...

块级元素、行内元素、元素嵌套
HTML标签有两类:块级元素行内元素 (1)块级元素-默认总是在新行开始 div、h1~h6、blockquote、dl、dt、dd、form、hr、ol、p、pre、table、ul … 特点:总是在新行上开始,高度、行高以及顶和底边距都可控制,宽…...

游标
游标 概念提供了一种对具有多行数据查询结果集中的每一行数据分别进行单独处理的方法显式游标 不带参数的显式游标声明一个游标,读取学生的学号。declarecursor my_cursor isselect xh from xs;v_xh xs.xh%type;beginopen my_cursor;fetch my_cursor into v_xh;dbms_output.pu…...
SM2算法第三篇:实现SM2秘钥交换协议的算法流程
参考文献:SM2椭圆曲线公钥密码算法-第三部分(秘钥协商协议) 一、概述 本部分规定了SM2椭圆曲线公钥密码算法的密钥交换协议,并给出了密钥交换与验证示例及相应的流程。本部分适用于商用密码 应用中的密钥交换,可满足…...

3 变量-创建变量tf.Variable.assign-1-改变原来变量的值,原来变量和assign后的变量不能共享同一内存空间。
import tensorflow as tf# assign会改变原来变量的值,原来变量和assign后的变量不能共享同一内存空间。 a tf.Variable([2.0, 3.0]) b tf.Variable(a) a.assign([5, 6])print(a.numpy()) # [5. 6.]print(b.numpy()) # [2. 3.]print(a.assign_add([2,3]).numpy()) …...

cong
aConfigurator.rar 来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12707901/viewspace-580375/,如需转载,请注明出处,否则将追究法律责任。 转载于:http://blog.itpub.net/12707901/viewspace-580375/...

美团实习笔试
2021.3.13美团实习笔试 java开发岗 被大数坑了一道题,似乎可以输出字符串。Scanner scanner new Scanner(System.in); int n scanner.nextInt();这里的输入参数应该都是知道长度的,然后才好调试,没处理好输入的个数无法调试,幸好…...

sqlserver目标端比oracle源端多2个字段的同步
Oracle GoldenGate Command Interpreter for SQL Server Version 19.1.0.0.200204 OGGCORE_19.1.0.0.0OGGBP_PLATFORMS_200122.0600 Windows x64 (optimized), Microsoft SQL Server on Jan 22 2020 20:24:58 Operating system character set identified as GBK. Copyright (...

Vue组合式 api 的常用知识点
Vue组合式 api 的常用知识点 看很多公司还是需要vue3优先的,最近把vue3的组合式api学习了一下并整理的笔记,大家可以看看自己有多少掌握的。 setup 函数 会在组件的生命周期函数之前执行 没有this,所以在 setup 中是不能拿到组件的其他的信…...

2022-3-21至2022-3-27周报
文章目录摘要文献阅读一 Pyraformer: Low-Complexity Pyramidal Attention for Long-Range Time Series Modeling and Forecasting1论文摘要2论文研究内容3创新点金字塔注意模块(PAM)粗尺度构建模型(CSCM)预测模块消融实验4作者的研究思路或研究方法5用哪些数据来论证的基础知识…...

2020美团实习试题
时间:2020年4月23 题目:给出一列数长度n,和一列数a,定义相似数为:两个数位与运算,结果不为0,则判断相似数,在数列a中寻找两个数但且仅当两个数位与起来不为0 实例:n 4&a…...

TypeScript中的类 Class
公共属性的修饰符: public:公共,默认修饰符,外部和内部都能使用private:私有的,只能内部类用,外部不能读写protected:当前类和派生类(子类)可访问readonly:外部只能读不能写static&…...

腐败团--新天然居筒骨火锅
地点:华林路省农行对面新天然居筒骨火锅 人员:腐败团成员(老缺席的成员继续缺席) 菜肴:筒骨锅底火锅配菜。 特色:骨头,还是骨头,一堆的骨头(有图为证)&#x…...

快速迭代失败
如Java中的容器Map: for(Person person : pList){ if(person.getGender()Gender.MALE){ pList.remove(person); //不能在遍历期间进行 remove这个操作 } } Map在遍历时候通常 现获得其键值的集合Set,然后用迭代器Iterator来对Map进行遍历。 注意在遍历的…...
手机中的数据无法显示怎么恢复
手机中的数据无法显示怎么恢复最近这些天老板没在家,于是本来就只有我和朋友在上班的公司就更加的清闲了,我们两个也懒得清闲,趁着老大不在的时候就偷懒在家,因为工作一般都是在电脑上就可以完成的,其实在不在公司都是…...

Goslate-免费谷歌翻译项目(文章包括完整的设计,代码,开源,部署过程)
下面一位牛人的一个项目,项目不是很难,但是却包括了怎么设计,写文档,部署,值得学习,很完整的项目。 项目在https://bitbucket.org/zhuoqiang/goslate Goslate 免费谷歌翻译 起因使用原理优化设计开源 起因…...

[翻译] 在 Overleaf 中分享项目
原 文:Sharing a project 译 者:Xovee 翻译时间:2020年5月21日 在 Overleaf 中分享项目 Overleaf 的一个特色即是你可以轻松地与他人分享和协作你的项目。 链接分享 链接分享 允许项目拥有着使用一个秘密的链接来分享项目。任何拥有…...

QT技巧 - 如何让子项目的文件有翻译文件
#QT技巧 - 如何让子项目的文件有翻译文件 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 目录 文章目录#QT技巧 - 如何让子项目的文件有翻译文件[toc]环境: QT版本:5.6.2 编译器:VS2013…...

使用 TensorFlow 构建机器学习项目中文版·翻译完成
原文:Building Machine Learning Projects with TensorFlow 协议:CC BY-NC-SA 4.0 不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则 2.3.c 在线阅读ApacheCN 面试求职交流群 724187166ApacheCN 学习资源 目录 使…...
请各位支持参加深度学习数据翻译开源项目
https://github.com/ExtremeMart/DeepLearningBook-CN 本项目是Ian Goodfellow 、 Yoshua Bengio 和Aaron Courville大神的Deep Learning Book的中文翻译开源项目,欢迎各位有志趣的人士加入! 本人已翻译完成第一章,正在校对中,校…...

ooc翻译项目google code托管
ooc翻译项目已经在google code上创建项目托管,有兴趣的朋友可以参与进来。 版本控制工具使用TortoiseSVN,项目版本下载地址:https://ooc.googlecode.com/svn/trunk/...
可解释的机器学习翻译项目启动 | ApacheCN
原书:interpretable-ml-book 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 机器学习交流群 629470233ApacheCN 学习资源 目录 前言第一章 引言第二章 解释性第三章 数据集第四章 解释模型第五章 模型不可…...

在github上创建文档翻译项目,并与readthedocs、transifex整合的方法
一、概述 本文以创建Django最新LTS版本的文档简体中文翻译项目为例,描述了在github.com上创建文档翻译项目,并与readthedocs.org和transifex.com整合的方法。 操作流程主要分为三部分: 在github.com上创建一个文档翻译项目与transifex.com…...

项目管理心得(二)——翻译项目
书接上文。收集,确认需求是项目中最重要的环节之一,这次以翻译项目为例: 任务要求: 开发出一套,以计算机软件辅助“翻译的项目经理”进行项目成本控制和提高质量的软件。 要做好一件事,一个工作,就要养成一个好的工作习…...

小米手机fastboot模式出现Press any key to shutdown字样解决方法
Win10系统使用USB2.0接口,并复制以下命令到记事本另存为.bat文件,以管理员的身份运行即可解决。 echo off reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "osvc" /t REG_BINARY /d &quo…...

Delphi 工厂模式
RAD Studio 10.2.3 测试√ 运行结果: 使用方法: procedure TDesignPattern.Button_FactoryPatternClick(Sender: TObject); varmBigBoss: TBigBoss;mFactory: IFactoryMgr; beginmBigBoss : TBigBoss.Create;mFactory : mBigBoss.GetFactory(小米手机);…...

尚硅谷设计模式学习(八)桥接模式
以手机操作问题引入桥接模式 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图: 传统思路分析 传统方案解决手机操作问题分析 1)扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式)ÿ…...

python设计模式-创建型模式
简单工厂模式 简单工厂模式(Factory Pattern) 提供了一种创建对象的最佳方式。我们希望有一个工厂可以创造不同类型的对象,调用者在创建对象时,只需要指定其名字即可获取一个相应的对象,从而隐藏调用者无需关注的对象创…...

golang设计模式——桥接模式
桥接模式 目录桥接模式UML类图:使用场景代码实现总结实例代码单元测试桥接模式并不常用,而且桥接模式的概念比较抽象。桥接模式一般用于有多种分类的情况,如果实现系统可能有多角度分类,每一种分类都有可能变化,那么就…...

《和声学教程》学习笔记(三):六和弦和经过/辅助的六四和弦
六和弦的重复音及排列法 1. 重复音 重复根音或五音,最好不重复三音如果在自己的三和弦之后,则可以重复三音 2. 排列法 不仅有密集的和开放的,还有混合的(一对音程密集排列,另一对开放位置) 六和弦与三…...

C++ 工厂模式 类模板实现
文章目录1.简单工厂模式2.工厂方法模式3.抽象工厂模式4.模板类实现工厂模式工厂模式正如其名字一样,用于产生对象的,往往是用于代替new,特别是在多态继承体系中,利用工厂模式可以将对象的产生延迟到子类中实现,而我们只…...

设计模式(二)简单工厂模式
一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。不过,在 GoF 的《设计模式》一书中,它将简单工厂模式看作是工厂方法模式的一种特例,所以工厂模式只被分成了工厂方法和抽象工厂两类。实际上…...

设计模式:工厂模式
文章目录前言一、工厂模式的分类二、简单工厂模式1.组成2.相关代码抽象产品类具体产品类:工厂类测试类运行结果三、工厂方法模式1.组成2.相关代码抽象产品类具体产品类:抽象工厂类具体工厂类四、抽象工厂模式1.组成2.相关代码抽象产品类具体产品类抽象工…...
雷军“小米模式”最精简总结
雷军给陈年了总结了小米十条经验,当我们得到这份简短文本时,也发现这的确是目前对“小米模式”最精简的详细描述:一。大市场。做一个产品需要有足够大的市场。二。单品。做单品,而不是做品类。三。制高点。态度要足够的好…...

华为机试题:HJ11 数字颠倒(python)
文章目录知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。2、print() :打印输出。描述:输入一个整数,将这个整数以字符串的形式逆序输出。程序不考虑负数的情况,若数字含…...

中科院一博士论文爆红刷屏!“炸”出了一批同行者,刚刚本人回应:祝愿大家努力终有所成!
点击“开发者技术前线”,选择“星标????” 让一部分开发者看到未来来自:量子位 报道 “理想不伟大,只愿年过半百,归来仍是少年,希望还有机会重新认识这个世界,不辜负这一生吃过的苦。最后如果还能做出点…...

【论文阅读】关键点检测——3FabRec: Fast Few-shot Face alignment by Reconstruction
3FabRec: Fast Few-shot Face alignment by Reconstruction数据集总览人脸关键点检测存在的挑战1. Introduction2. Related WorkHeatmapSSIM损失3. Methods3.1. Our approach3.2. Unsupervised face representation3.3. Supervised landmark discovery3.3.1 Interleaved transf…...

全解卷积神经网络,并分享9篇必读论文
转自公众号:大数据挖掘DT数据分析本文共18000字,建议阅读18分钟。本文为你介绍CNN整体系统架构及算法,并为你分享9篇必读论文。Introduction卷积神经网络CNN,虽然它听起来就像是生物学、数学和计算机的奇怪混杂产物,但…...

论计算机在教学中的作用论文,计算机在教学中的应用
海量优秀的免费计算机在教学中的应用范文供您参考与下载,关于计算机在教学中的应用的免费论文范文参考资料是由2016年最新的相关论文题目按照标准论文格式模板写作的,适合不知道怎么写计算机在教学中的应用的大学毕业生,对相关的本科论文和硕士毕业论文及职称论文发…...

mysql修改学生身高_身高预测: 男性成人身高 = (父亲身高 + 母亲身高) *0.54cm 女性成人身高 = (父亲身高 *0.923+ 母亲身高) /2cm 如果喜爱体育锻炼,那么身高可增加
【多选题】下列哪几项可能不是学术论文?【简答题】1.对某玉米品种大斑病发病率进行调查,1000株中有大斑病的株数为20株。若从中随机抽取4株,至少有2株为大斑病的概率为多少?【多选题】下列哪些可能是学术论文选题?【单选题】下列函数中,能获取当前系统日期和时间的函数是( )…...

深度学习论文推荐
Introduction卷积神经网络CNN,虽然它听起来就像是生物学、数学和计算机的奇怪混杂产物,但在近些年的机器视觉领域,它是最具影响力的创新结果。随着Alex Krizhevsky开始使用神经网络,将分类错误率由26%降到15%并赢得2012年度ImageN…...

深度学习9篇论文
Introduction卷积神经网络CNN,虽然它听起来就像是生物学、数学和计算机的奇怪混杂产物,但在近些年的机器视觉领域,它是最具影响力的创新结果。随着Alex Krizhevsky开始使用神经网络,将分类错误率由26%降到15%并赢得2012年度ImageN…...

GitHub上标星129K的Java教程,全程高能,只讲重点
前言 每天日常摸鱼的时候在GitHub上发现了这个129K的Java教程。 它涵盖了Java的所有知识点,包括Java语法、Java集合框架、Java IO、Java并发编程和Java虚拟机。 不多,但只讲重点。 为了帮助大家更好地学习,我们现在免费与您分享这些信息。 需…...

Github标星51K 阿里P8熬了700个小时,终于肝出32W字Java面试手册
前言 现在整个社会的情绪都很down,各界都在裁员,尤其是互联网行业,可是焦虑解决不了任何问题,但是学习可以。我一位朋友,受到到互联网寒冬的影响,在11月份,被无情裁员,之前他听到一些…...

在Github上标星超过53K+ 全网最全SpringBoot实战项目教程
今天给大家推荐一个Github上面超火的SpringBoot实战电商项目mall,目前在Github上面已经有35kStar。该项目拥有全套教程,对学习者特别友好。全套教程的获取方式已经放在文末! mall 简介 mall项目是一套电商系统,包括前台商城系统…...

Github已标星80,java语言自学教程
Java集合 多线程 JVM 计算机基础 计算机网络 数据结构 算法 操作系统 数据库面试题总结 MySQL Redis 常用框架面试题总结 Spring面试题总结 。就在五个半小时前,有个小伙伴私信我说,“哥,能推荐一些高质量的 Java 教程吗?”我回他,“教妹学 Java 不香吗&#…...

推荐标星 100 K 的 GitHub 开源项目
推荐标星 100 K 的 GitHub 开源项目 原文见:推荐 10 个标星 100 K 的 GitHub 开源项目 以下摘录部分: Build Your Own X (GitHub Star:102,000):汇集了诸多优质资源教你构建属于自己的东西,主要分为增强现实、区块链…...

GitHub标星3.9k全网最新核心识别系统,太爆了!!
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 前端采用Vue、Element UI。 后端采用Spring Boot、Spring Security、Redis & Jwt。 权限认证使用Jwt,支持多终端认证系统。 支持加载动态权限菜单,多方式轻松权限控…...

火爆 Github,这几个标星 10W+的前端学习项目真牛
前言 在这个框架和库流行泛滥的时代,开发中更多时候我们都会使用它们来提高效率! 但是,前端三剑客 HTML CSS JavaScript 依旧是我们开发中不可缺少的一部分,如果你想学习前端知识或者想巩固基础知识,下面这几个学习…...
如何做到注册不到三年Github标星47.1k+(几点经验)
差不多三年前,我注册了 Github,现在一共收获了约 47100star(赞),排名个人用户61。今天,我介绍下怎么样让自己的Github仓库获得更多的star。(作者:黄海广)0.导语 我的Gith…...

爆赞,GitHub上首本IntelliJ IDEA操作手册,标星果然百万名不虚传
还记得刚开始工作的时候使用的是Eclipse,后面是当时公司第一批尝鲜IDEA的人。刚开始用起来其实蛮麻烦的,因为最开始还是带着Eclipse的思维。 比如在Eclipse中一个workspace中可以有多个project,但是在IDEA中就没有workspace的概念了…...

GitHub 标星 5.9K+!1250 个运维工程师面试问题,看这个开源项目就够了!
大家好,我是 JackTian。 之前给大家分享了一篇《适合程序员的精选面试题清单》这份面试题清单主要包括内容:编程语言/框架/平台、数据库技术、缓存技术、操作系统、数据结构与算法、区块链、编码练习、综合清单、设计模式、网路、安全、数据科学等&…...

不愧是 GitHub 上标星 130K 的手册,内容不多,只讲重点
今天日常摸鱼的时候在 GitHub 上发现了这份标星 130K 的 软件测试 手册 内容涉及:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等 内容不多,只讲重点。 为了帮助大家更…...

是什么可以在Github上标星86.4K,揭秘蚂蚁金服开源的Springboot项目笔记
前言 Spring的影响力想必就不用小编多说了,今天要跟大家说的是SpringBoot。 Spring Boot作为目前Spring技术体系中炙手可热的框架之一,已经是开发者们的必备神器了。在实际的项目中,需要集成各种的插件支持,还有很多或许我们平时不…...

刚刚从GitHub 上扒下来,标星 75k,超牛的《Java面试突击版》,这么高标星果真有原因的
前言 不论是校招还是社招都避免不了各种面试。笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个有章可循‘说的意思只是说应对技术面试是可以提前准备。 运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得…...

GitHub标星 10k+ 的后台管理系统
其实项目网上有很多了,但是教程比较详细的没多少,今天分享的项目从安装部署到代码具体功能都有很详细都说明。 eladmin 是一款基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue 的前后端分离的后台管理系统,项目采用分模块开发…...

“阿里味” PUA 编程语言火上GitHub热榜,标星2.7K!
从程序员code到产品经理PPT的生态闭环,终于打通了。如果编程语言里都是“赋能”、“反哺”、“抓手”,会是啥样?我们不妨先来写个程序看看:怎么样,你看懂了吗?这段程序可不是乱写的,定义函数、条…...

盘点 GitHub 那些标星超过 20 K 的 Golang 优质开源项目
前言 Golang 作为一门还在快速成长的编程语言,想要与时俱进,还得多看看这几个开源项目。 听说你想学习 Go 语言,那我就来总结一下:那些目前我所了解的优质 Golang 开源项目。 Go 自己 学习 Go 语言,可别忘记了 Go 本身…...

GitHub 标星 6
序列化工具 Google 内部:Protocol Buffer; 外部替代品:Protobuf、Thrift、Avro 这一组工具用于结构化数据序列化,上面这些,都是 xml 替代品,比它更小、更快、也更简单。 Protocol Buffer 和 Protobuf 都…...

Github标星4.8K!微软开源的可视化工具,未免太酷炫了吧
点击 机器学习算法与Python学习 ,选择加星标精彩内容不迷路开源最前线(ID:OpenSourceTop)链接:https://visualstudiomagazine.com/articles/2019/10/14/sanddance.aspx今天和大家分享一个由微软开源的可视化工具——Sa…...

标星 3.6k+ 让你无所不能的工具
【公众号回复 “1024”,免费领取程序员赚钱实操经验】微信跳一跳大家都玩儿过,为了刷排行榜,可能因为一次失误,又得玩儿很久,于是你心想,能不能写个脚本自动玩儿,而且没有失误的那种。 除了小游…...

iOS vue devtools工具的手把手安装,及Vue.js not detected的解决
使用vue插件Vue.js devtools 一.通过谷歌商店直接下载(要翻墙) 二.不翻墙的方法: 1.官网下载 git地址:https://github.com/vuejs/devtools git clone https://github.com/vuejs/devtools2.完成后命令行里切到该目录下&#x…...

Gorm中没有belong many怎么办?
背景最近项目开发过程中遇到了一个问题,有两个结构体,试题和考题,试题没有分数,考题拥有分数,试题可以被多次选中充当考题,每次充当考题的时候都会有一个分数。对于一个试题来时,第一次被选中充…...

elastic-job VS xxl-job
1、Elastic-job介绍 Elastic-job 是由当当网基于quartz 二次开发之后的分布式调度解决方案 , 由两个相对独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成 。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服…...

基于Unity的软光栅实现(3):基于Job system的多核加速光栅化
文章目录系列文章导航拥抱CPU多核计算Job System简介ParallelFor JobJobRasterizer数据准备:JobRenderObjectData缓冲区表示和Clear渲染流程Job规划顶点Job调度三角形Job调度Job实现VertexShadingJobTriangleJobExecute中的数据获取Job中访问纹理关于[NativeDisable…...

Job和CronJob介绍
Job Job负责批量处理短暂的一次性任务 (short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。 Kubernetes支持以下几种Job: 非并行Job:通常创建一个Pod直至其成功结束 固定结束次数的Job&…...

ElasticJob分布式调度,使用注册中心zookeeper开启固态定时任务附源码(二)
ElasticJob分布式调度,使用注册中心zookeeper开启固态定时任务附源码(二)问题背景项目搭建代码测试总结Lyric: 是我给的承诺问题背景 上一篇介绍了ElasticJob分布式调度基本概念,这个篇章介绍一下分布式固态定时任务 …...

[Quartz] Job 详解
转自:http://ju.outofmemory.cn/entry/76660 Job 非常容易实现,这个接口中只有一个 execute() 方法。Quartz 中可能需要为 Job 实例设置属性,这个功能通过 JobDetail 类来完成。 JobDetail 实例通过 JobBuilder 创建。你可以使用静态导入所有…...

Job轮询总结与思考
背景 在业务数据没达到一定量又不想引入分布式事务框架增加复杂性,基于Job框架实现的补偿方案不失为一种简单优雅的方案。 微服务环境下虽然使用了retry框架,对一些幂等的接口一次失败多次尝试,但有些场景比如下单后无库存,要保…...

JOB:基础知识
1、XHTML和HTML有什么区别 HTML(HyperText Markup Language)是超文本标记语言 XHTML是可扩展超文本标记语言 功能上的差别:主要是XHTML可兼容各大浏览器、手机以及PDA,并且浏览器也能快速正确地编译网页。 书写差别&#…...

Mysql高级 索引优化
Mysql逻辑架构 Mysql与其他数据库相比有点与众不同,他的架构可以在多种不同的场景中应用并发挥作用,主要体现在存储引擎的架构上,插件式的存储引擎结构将查询处理和其他的系统任务以及数据的存储提取分离。 数据库是C/S架构的,cli…...

转:性、恐惧、爱、信念,管理者一生都逃不掉的课题
个人理解: 性、恐惧、爱、信念。 把人当人,不只是情怀,更是一种管理上的务实精神。 破山中贼易,破心中贼难 害怕失败的恐惧所主导,所以“发明”出一个又一个的借口,从而不需要去面对可能的失败 如果一个人想…...

MySQL高级篇(上)
一、MySQL的架构介绍 1.1 MySQL简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,…...

桐乡学电商淘宝
电商淘宝 课程名称:淘宝美工、淘宝运营综合班 招生对象: (1)有意向但无基础或有一些基础想继续提升,并准备从事该专业方向,希望能自己完成店铺的日常维护、装修、经营等工作。 (2)针对零基础想开…...

大模型爆火,AI行业人才紧缺,尤其是这三个方向
上周gpt-4和文心一言陆续发布,热搜上挂了好几天,话题量暴涨。体验了一下,学姐觉得,文心一言虽然还是有一定的差距,但百度这么多年一直持续在相关领域深耕技术,在这么短的时间内就推出了类ChatGPT产品&#…...

现在转行IT还有机会吗?
其实大部分所谓的机会都是建立在我们准备好的基础上的,因为大多数的企业并不会启用一个零基础毫无经验,或者没有企业所需要特质的人员。作为普通人而言,只有当你准备好之后,你才会看到机会,在这之前,你只会…...

Kruise Rollout v0.3.0:手把手教你实战操作Deployment 分批发布和流量灰度
helm3 安装 kubectl版本:v1.20.9 heml版本:v3.1.2 [rootk8smaster peishunwu] wget https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz tar zxvf helm-v3.1.2-linux-amd64.tar.gz cd linux-amd64 cp helm /usr/bin/helm helm version version.Bu…...

Linux编译器-gcc/g++ 使用
在介绍gcc/g的使用前我们先了解一下两者的不同 gcc时主要编译c语言,而g主要编译c的,但是两者的选项是相同的,因此我们以gcc和c语言为例来讲解。背景知识 gcc和g都是编译器其核心作用将文本类文件翻译成二进制可执行 那么其过程是怎样的&…...

vue中名词解释
No名称略写作用应用场景其他1 单页面应用 (Single-page application) SPA 1,控制整个页面 2,抓取更新数据 3,无需加载,进行页面切换 丰富的交互,复杂的业务逻辑的web前端一般要求后端提供api数据…...

ChatGPT的多种用法(持续更新中。。。)
指南 写小说 “写一本拥有出人意料结局的推理小说。” “写一个让读者参与其中的交互小说。” “为孩子们写一本激励他们勇敢面对挑战的小说。” “编写一个有关科技创新的未来世界的小说。” “创造一个让读者感到沉浸其中的幻想故事。” 充当 Linux 终端 我想让你充当…...

DateTimePicker 日期时间选择器时间格式处理
//时间选择器格式处理timeChange(e) {var that thisvar date new Date(e);var y date.getFullYear(); // 年var m date.getMonth() 1; // 月m m < 10 ? (0 m) : m;var d date.getDate(); // 日d d < 10 ? (0 d) : d;var h date.getHours(); // 时h h < …...

FITC-PEG-OH荧光素-聚乙二醇-羟基用以标记生物分子,例如蛋白质,抗体,肽等
结构式: 中文名称:荧光素-聚乙二醇-羟基 英文名称:FITC-PEG-OH 激发/发射波长:515nm-520nm 性状:固体或粉末 溶剂:溶于DMSO,DMF,DCM,溶于水 分子量:400、600、1000、2000、3400…...

Java JDK详细安装配置(详细备忘版本)
目录概览一、下载安装二、环境配置三、常见问题一、下载安装 官方下载地址:点我去官网 java20 、java17如下: java8、java11如下 jre8 如下 以 java8 下载为例: 按步骤输入账号密码 之后就会跳出下载显示框 得到了文件名为 jdk-8u361-win…...

Spring Security 6.0系列【3】源码篇之基于过滤器的基本原理
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录前言过滤器(Filter&am…...

H7-TOOL发布固件V2.21, 增加RTT快捷面板功能,脱机烧录增加英飞凌,Qorvo以及NXP,普冉,华大,灵动微等新系列(2023-03-26)
H7-TOOL所有资源汇总(含操作手册): H7-TOOL开发工具,1拖4/16脱机烧录,高速DAPLINK,RTOS Trace,CAN/串口助手, 示波器, RTT等,支持WiFi,以太网,高速USB和手持…...

Python采集商品数据信息,做数据可视化分析,又是对数据分析上心的一天
前言 环境使用 在开始之前,安装好我们的代码编辑器和环境是非常重要的 Python 3.8pycharm --> 编辑器jupyter notebook --> 数据分析编辑器 模块使用 requests >>> pip install requests 数据请求parsel >>> pip install parsel 数据解…...

[N1CTF 2018]eating_cms_
目录 信息收集 代码审计 parse_url解析漏洞 信息收集 进入即是登录页面,抓包一看应该是SQL注入,但是空格、%、|等等啥的都被waf了,不太好注入,先信息收集一波 花一分钟扫下目录,发现一个viminfo和register.php Viminfo文件…...

比较合规的分销模式有哪一些
梦龙商业案例分析,带你了解商业背后的秘密 首先肯定是一级分销的,有人说不是二级分销也可以吗? 其实二级分销也是有点悬的哦,因为严格来讲平台也算一级,如果做普通的二级,有可能会被定义成三级分销&#…...

【CSAPP】异常控制流 | 异常表 | 异常类别 | 同步异常 | 异步异常
💭 写在前面:本文将学习《深入理解计算机系统》的第六章 - 关于异常控制流和系统级 I/O 。CSAPP 是计算机科学经典教材《Computer Systems: A Programmers Perspective》的缩写,该教材由Randal E. Bryant和David R. OHallaron 合著。 本…...

安全多方计算之八:Mix-Match
Mix-Match1. 混合网络基于ElGamal加密方案的混合网络2. PET协议3. Mix-Match协议4. 百万富翁问题的Mix-Match解决方案M.Jakobsson和A.Juels提出了基于Mix-Match的安全多方计算协议构造方法,该类协议包括Mix与Match两个阶段: Mix阶段:通过构造…...

idea中的sc.nextLine()与sc.nextInt()处理回车换行的问题
文章目录一. 发现问题1. sc.nextLine()2. sc.nextInt()二. 分析问题三. 总结一. 发现问题 今天在洛谷刷题,就发现这字符串死活输不进去,然后就有了今天的文章。先看下面这个问题。 1. sc.nextLine() package 洛谷;import java.util.*;public class Te…...

VBA提高篇35 VBA操作Word/PPT/Access_CreateObject/GetObject
文章目录1. Word参数2. PPt/Access3. office的互相调用3.1 工程创建CrateObject3.2 对比上面速度高,效率快GetObject1. Word参数 参数含义ApplicationWord应用本身Document代表一个Word文件Characters该文件中所有字符 参数含义Range.Text该Range的内容,即其中所有字符构成的字…...

Java电子招标采购系统源码—互联网+招标采购
智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明,可…...

Linux常用命令——ln命令
在线Linux命令查询工具 ln 用来为文件创件连接 补充说明 ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。 注意:符号链接文件不是一个独立的文件&a…...

浅谈可直接安装的抓包APP-VnetStream
之前介绍过关于抓包工具charles的详细使用方法,链接:https://mp.csdn.net/mp_blog/creation/editor/100563263。但觉得还是不够方便,今天来简单介绍下可以直接安装在移动端的APP抓包工具。1.关于ios端Stream工具的使用1.1stream直接在appstor…...

直播电商助力乡村振兴高峰论坛举行
3月24日, 第七届杭州全球企业家论坛暨直播电商助力乡村振兴高峰论坛举行,由浙江中小企业协会主办的直播电商助力乡村振兴高峰论坛在杭州国际博览中心召开。与国家智库级的各个专家及多个主流平台创始人齐聚一堂,共同探讨直播电商助力乡村振兴…...

为什么OpenCV用GPU/cuda跑得比用CPU慢?
一、原因总结 最近项目需要,发现了这个问题。网上找原因,汇总起来,有以下几点原因: 1、首先对于任何一个CUDA程序,在调用它的第一个CUDA API时后都要花费秒级的时间去初始化运行环境,后续还要分配显存&am…...

Redis的使用【Redis】
一、缓存简介 缓存简介 二、缓存分类 缓存分类 三、常见缓存 常见缓存 四、Redis使用 Redis 有 5 ⼤基础数据类型: String——字符串类型Hash——字典类型List——列表类型Set——集合类型ZSet——有序集合类型 其中最常⽤的是字符串和字典类型。 1.字符…...

复杂链表的复制-剑指Offer35-java
一、题目描述 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 示例 1: 输入:head [[7,null],[13,…...

免费ChatGPT自动批量生成文章工具
要利用ChatGPT批量自动生成文章,最简单的方式就是找到一家接入了chatgpt或者文心一言的软件,【ChatGPT批量文章生成详细如下图】然后输入一些关键词和主题,即可生成文章或者解答你的问题,或者直接导入文章进行批量续写。 ChatGPT是…...

大数据项目实战之数据仓库:业务采集平台——第2章 业务数据介绍
文章目录第2章 业务数据介绍2.1 电商系统表结构2.1.1 活动信息表(activity_info)2.1.2 活动规则表(activity_rule)2.1.3 活动商品关联表(activity_sku)2.1.4 平台属性表(base_attr_info…...

福建互联网医院牌照申办需要哪些资料
福建互联网医院牌照申办需要哪些资料|福州|宁德市|泉州市|厦门市|莆田市|南平市|龙岩市|三明市|漳州市 很多人都反应互联网医院牌照申请太复杂了,弄了几次都没过,怎么办呢?其实也没有想象的那么难,主要就是先到当地的申办机构了解…...

分布式系统(Distributed Systems)方向有哪些SCI期刊? - 易智编译EaseEditing
以下是一些比较著名的分布式系统SCI期刊: IEEE Transactions on Parallel and Distributed Systems: 这是一个由IEEE出版的期刊,主要涵盖并行和分布式系统中的计算、通信和控制等方面的研究成果。该期刊内容涵盖分布式计算、通信协议、分布式存储、虚拟…...

最小生成树kruskal-修建公路1
题目描述 L 城一共有 N 个小区。 小明是城市建设的规划者,他计划在城市修 M 条路,每修建一条路都要支付工人们相应的工钱(需要支付的工钱 = 路的长度)。 然而小明所拿到的经费并不够支付修建 M 条路的工钱,于是迫于无奈,他只能将计划改变为修建若干条路,使得 N 个小区之…...

红日(vulnstack)5 内网渗透ATTCK实战
环境配置 链接:百度网盘 请输入提取码 提取码:l8r7 攻击机:kali2022.03 192.168.135.128(NET模式) win7 192.168.138.136 (仅主机模式) 192.168.135.150 (NET模式) win2008 192.168.138.138 (仅主机模式) web渗透 1.nmap探测目标靶机开…...

Promise API
1.Promise构造函数 Promise(excutor){} excutor函数:执行器 (resolve,reject)>{}resolve函数:内部定义成功时我们调用的函数value>{}reject函数:内部定义失败时我们调用的函…...

C++ 重复尾部字符串删除函数
#include "iostream" #include "string" using namespace std; void delRepeat(string &head,string &tail) {for (int j 1; j < tail.size(); j) {if(head.substr(head.size()-j).compare(tail.substr(0,j))0){ // 删除重复的部分…...

Python-Flask 快学
flask是Python的一个轻型Web框架. 使用pycharm自动创建项目,也可以手动创建,以下是目录的结构: ├── app.py├── static└── templates 一、创建一个简单应用 from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return "hello world &q…...

【CANoe】CAPL_UDS安全算法dll制作
文章目录一、背景二、方法一:在CAPL中引入dll的制作【制作dll的通用方法】1、在CAPL中打开帮助文档2、找到CAPL DLL相关的说明,以下图中标记的为Demo进行dll的制作3、拷贝到桌面,我用VS2019打开4、解析其中一个函数,制作dll类似原…...

docker部署chat-web,实现自己的ChatGPT
本篇文章的前提是请确认已获得openai 的API-KEYS,即以sk-开头的keys;是否在服务器上安装了docker以及docker-compose docker以及docker-compose安装请参考我的博文:CENTOS8.0安装DOCKER&DOCKER-COMPOSE_wd520521的博客-CSDN博客 一、&a…...

【看门狗】我说的是定时器不是狗啊
单片机在运行中死机了,你或许只能按2下电源键(重启)或1下复位键。 这里简单说一下重启和复位: 从RESET引脚复位,只有MCU复位。而外设看情况,有的可能会有MCU同步复位或者重新初始化。也有可能一些保持复位…...

物理机CPU使用率报警
背景知识 (background) CPU是稀缺的共享资源,CPU使用率过高,可能造成更多的上下文切换、调度延迟、CGroup CPU Throttle。 无论是物理机或容器化混合部署的应用,CPU做不到完全隔离,最多只能限制使用上限。部分进程CPU使用过多&a…...

【python实操】马上毕业了,你还不懂什么是守护线程、线程、进程?(附12306抢票程序-源代码)
作者:20岁爱吃必胜客(坤制作人),近十年开发经验, 跨域学习者,目前于海外某世界知名高校就读计算机相关专业。荣誉:阿里云博客专家认证、腾讯开发者社区优质创作者,在CTF省赛校赛多次取得好成绩。…...

MySQL InnoDB 刷脏页
MySQL InnoDB 刷脏页flush 过程控制策略WAL 机制 : InnoDB 在处理更新语句时,只做写日志的磁盘操作 脏页 : 当内存数据页与磁盘数据页内容不一致干净页 : 内存数据写入到磁盘后,内存与磁盘上的数据页的内容一致 更新/ flush 过程 : flush 过程 flus…...

如何用Postman做接口自动化测试?没有比这个更详细的了
目录 前言 什么是自动化测试 自动化测试有哪些分类 为什么需要自动化测试 Postman自动化测试演示 1.新建集合 2.新建接口 3.填写自动化测试脚本 4.录入所有接口 5.执行自动化测试 前言 什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 …...

openAi ChatGPT调用性能优化的一些小妙招
参考的demo:GitHub - ddiu8081/chatgpt-demo: A demo repo based on OpenAI API. 扭曲调教: openai提供的chat接口(https://api.openai.com/v1/chat/completions)由于其模型很大(什么1750亿个参数啥的),单…...

前端面试笔试题总结
前端面试笔试题总结1.说说你对react的理解?有哪些特性?2.说说Real diff算法是怎么运作的3.说说React生命周期有哪些不同的阶段?每个阶段对应的方法是?4.说说你对React中虚拟dom的理解?5.说说你对react hook的理解&…...

基于MATLAB编程的蚁群算法格栅路径优化,基于蚁群算法的路径避障规划
目录 背影 蚁群算法的原理及步骤 基本定义 编程思路 适应度函数 算法的规则 特点 主要参数 代码 结果分析 展望 背影 格栅路径优化运算量大,可能解多,求解难度高的,可行解多的特点,一般都无法用直接求解,本文用蚁群算法进行求解,蚁群算法拥有更好的全局寻优能力, 蚁…...

怎么画一张微服务架构图?
怎么画一个微服务架构图? 要画一个微服务架构图,你需要遵循以下步骤: 确定服务:首先,你需要确定你的微服务架构需要哪些服务。每个服务都应该具有明确定义的功能和目的。 绘制图表:使用一个绘图工具,比如…...

python---python基础语法
python基础语法 主要针对python中变量的定义 1.重点 1.2字面量 1.介绍:就是数据类型的学习。 2.介绍 数字。浮点数,就和和现实中写法一样就行字符串,python中所有的被引号包裹的都是字符串# 字面量学习# 数字 6666 232323 -45656566# 浮点 -…...

ython和PyTorch实现ChatGPT批量AI智能写作
怎么实现用chatgpt批量写作 ChatGPT是一种针对文本生成的自然语言处理工具,它可以用于生成大量的文本内容。但是,由于ChatGPT需要的计算资源较大,处理时间较长,因此在批量写作时需要考虑花费的时间和资源。 以下是一些步骤&…...

【力扣专题】2.链表
2.链表虚拟头结点(C)直接在原链表上操作设置虚拟头节点再操作相关题目递归相关题目双指针pre与temp快慢指针/环形链表相关题目计算链表长度相关题目首先最好能够手写链表相关操作链表:707.设计链表虚拟头结点(C) 例题…...

IAST技术进阶系列(六):API安全治理与防护初探
随着云原生和软件开源技术的蓬勃发展,越来越多的开发平台和第三方服务快速涌现,应用系统与功能模块的复杂性不断提升,应用开发深度依赖于应用程序接口(Application Programming Interface,API)之间的相互调…...

Android App保护用户隐私————禁止应用截屏或录屏
引言 相信大家在使用某些平台应用的时候,都会有限制的规定。 通常情况下,录屏、截图软件都可以在手机的运行过程中进行录屏、截图,普通的平台也不会阻止录屏、截图软件运行。 但是在某些比较敏感的平台上面,有可能出于保密的原因&…...

【C#基础】chatGpt带你学C#接口,它在游戏中有什么应用?
What are Interfaces? In computer programming, an interface is a set of rules or guidelines that define how different software components or systems should interact with each other. It serves as a contract between two or more components, specifying how the...

剑指offer-旋转数组中的最小值
文章目录题目描述题解一 暴力for循环🌕博客x主页:己不由心王道长🌕! 🌎文章说明:剑指offer-旋转数组中的最小值🌎 ✅系列专栏:剑指offer 🌴本篇内容:对剑指offer中的数组…...

Nginx解决跨域问题(前端服务器,接口服务器)记录
Nginx解决跨域问题(前端服务器,接口服务器)记录 使用可视化工具宝塔,没有可忽略 遇到的问题:前端服务器访问接口服务器跨域 例:前端服务器访问地址 11.11.11.11:9008 后端服务器访问地址 22.22.22.2…...

Windows权限提升—令牌窃取、UAC提权、进程注入等提权
Windows权限提升—令牌窃取、UNC提权、进程注入等提权1. 前言2. at本地命令提权2.1. 适用范围2.2. 命令使用2.3. 操作步骤2.3.1. 模拟提权2.3.2. at配合msf提权2.3.2.1. 生成木马文件2.3.2.2. 设置监听2.3.2.3. 设置反弹2.3.2.4. 查看反弹效果3. sc本地命令提权3.1. 适用范围3.…...

【JAVA】Java进阶(一)
注解 什么是注解 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节…...

软考计算机系统笔记
计算机系统cpu运算器控制器补码特性 与原反补表示范围浮点数规格化浮点数寻址奇偶校验码海明码循环冗余校验码RISC与CISC流水线公式(指令流水线)存储器cachecache地址映像替换法中断输入输出 控制方式总线加密技术与认证技术加密技术(解决窃听…...

VAE的NLP理解(离散,没有序列性)
Variational Auto-Encoder 变分自编码器 严格来说,VAE 实现的是“文本重建”,它虽然也包含“编码器”和“解码器”两个部分,但和 NLP 中的 encoder-decoder 架构还是有所区别。最大的差异在于,VAE 发源于 CV,它天然地不…...

【Linux】[万字] Linux下的文件操作 及 Linux文件描述符fd 详解
在Linux操作系统中, 文件描述符是一个至关重要的概念. 理解了文件描述符, 其实就可以相当于理解了Linux系统的关于内存文件系统的整个大致框架和逻辑 但是在介绍文件描述符之前, Linux关于文件还存在许多 概念和文件操作 的知识需要介绍一下, 就当作是为解释文件描述符所做的…...

VMware16 安装Oracle isos
文章目录一、下载资源二、安装教程一、下载资源 vm16的安装教程 配置内存以及分区的时候可参考Oracle官方文档 oracle 镜像的下载地址 下载地址截图: 二、安装教程 打开虚拟机,选择创建新的虚拟机 自定义 默认 稍后安装 安装Linux系统 选择安装位置 配…...