自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 工作流/任务卸载相关开源论文分享

decima-sim概述:图神经网络+强化学习处理多工作流用的spark的仿真环境,mit的论文,价值很高,高被引:663仓库地址:https://github.com/hongzimao/decima-sim论文:https://web.mit.edu/decima/content/sigcomm-2019.pdfDependency-Aware-Computation-Offloading-for-Mobile-Edge-Computing-with-Edge-Cloud-Coope

2024-03-03 21:37:50 580 1

原创 论文笔记:Computation Off-Loading in Resource-Constrained Edge Computing Systems Based on DRL

${|V_i{|V_i{|V_i{|V_j{|V_it|}w_{i,j}t=D_i(16):最小化所有任务中的最大总体任务处理延迟(16a):确保其每个子任务i可以在本地设备上执行、卸载到边缘服务器、或分配给相应计算组中的设备以供执行。(16b):确保在边缘服务器处执行的任务所需的计算资源的总和不超过边缘服务器的总计算资源。(16c):确保设备本地计算的和被卸载计算的总和不超过本设备的资源总和(16d):确保对子任务数据大小的约束,其中子任务数据大小之和等于任务的数据大小。

2024-02-25 19:50:50 1004

原创 逆向某安卓游戏native层登录协议的过程记录

用到工具:(HOOK看参数) +(模拟) + ida(静态分析)+ charles(抓包)

2023-07-12 15:58:32 843

原创 JAVA 多线程学习之LongAdder和AtomicLong

AtomicLong : CAS+自旋操作更新AtomicLong中的value值,进而保证value值的原子性更新。 public final long getAndUpdate(LongUnaryOperator updateFunction) { long prev, next; do { prev = get(); next = updateFunction.applyAsLong(prev);

2020-08-27 16:59:18 181

原创 JAVA多线程学习笔记 死锁问题

哲学家就餐问题很容易造成死锁避免死锁的方式既然可能产生死锁,那么接下来,讲一下如何避免死锁。1、让程序每次至多只能获得一个锁。当然,在多线程环境下,这种情况通常并不现实2、设计时考虑清楚锁的顺序,尽量减少嵌在的加锁交互数量3、既然死锁的产生是两个线程无限等待对方持有的锁,那么只要等待时间有个上限不就好了。当然synchronized不具备这个功能,但是我们可以使用Lock类中的tryLock方法去尝试获取锁,这个方法可以指定一个超时时限,在等待超过该时限之后变回返回一个失败信息...

2020-08-27 10:49:22 123

原创 JAVA 多线程学习笔记 线程的状态转换

情况 1 NEW --> RUNNABLE当调用 t.start() 方法时,由 NEW --> RUNNABLE情况 2 RUNNABLE <–> WAITINGt 线程用 synchronized(obj) 获取了对象锁后调用 obj.wait() 方法时,t 线程从 RUNNABLE --> WAITING调用 obj.notify() ,obj.notifyAll() , t.interrupt() 时竞争锁成功,t 线程从 WAITING --&gt.

2020-08-26 14:29:36 102

原创 JAVA 多线程学习笔记 设计模式之生产者/消费者模式

与前面的保护性暂停中的GuardObject不同,不需要产生结果和消费结果的线程—一对应 消费队列可以用来平衡生产和消费的线程资源生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据 消息队列是有容量限制的,满时不会再加入数据,空时不会再消耗数据JDK中各种阻塞队列,采用的就是这种模式...

2020-08-26 14:05:42 98

原创 JAVA 多线程学习笔记 设计模式之保护性暂停

即Guarded Suspension,用在一个线程等待另一个线程的执行结果、要点有一个结果需要从一个线程传递到另一个线程,让他们关联同一个GuardedObject、如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者)JDK中,join的实现、Future的实现,采用的就是此模式因为要等待另一方的结果,因此归类到同步模式...

2020-08-26 14:01:59 153

原创 JAVA 多线程学习笔记之wait/notify

wait/notify当Owner调用wait方法,就会进入WaitSet变为WAITING状态BLOCKED和WAITING的线程都处于阻塞状态,不占用CPU时间片BLOCKED线程会在Owner线程释放时唤醒WAITING线程会在Owner线程调用notify或notify时唤醒但唤醒后不会立即获得锁,仍要进入EntryList重新竞争...

2020-08-24 16:47:55 82

原创 JAVA 多线程学习笔记之第四章内容part3 synchronized优化原理

轻量级锁Object的markword会与 线程栈里面的Lock Record 交换交换前交换后MarkWord情况锁重入同一线程进入同一轻量级锁 会在线程栈中加一条lock record并且头为null锁膨胀(轻量级锁->重量级锁)这时候Thread-1加轻量级锁失败 会膨胀成重量级锁注意Object的markword变成了Monitor地址自旋优化偏向锁MarkWord情况ps:调用hashcode会禁用这个对象的偏向锁解释:偏向锁需要2的格式

2020-08-24 16:38:16 97

原创 JAVA 多线程学习笔记之第四章内容part2

参考资料https://www.cnblogs.com/haitaofeiyang/p/8385165.htmlhttps://blog.csdn.net/TenaciousD/article/details/95447078https://www.jianshu.com/p/73b9a8466b9c下图是对象头运行时的变化状态:锁标志位 和 是否偏向锁 确定唯一的锁状态其中 轻量锁 和 偏向锁 是JDK1.6之后新加的,用于对synchronized优化MonitorMonitor是

2020-08-22 17:13:24 199

原创 JAVA 多线程学习笔记之第四章内容part1

4.2 synchronizedsynchronized 实际是用对象锁保证了临界区内代码的原子性,临界区内的代码对外是不可分割的,不会被线程切换所打断。4.4 变量的线程安全分析成员变量和静态变量是否线程安全?如果它们没有共享,则线程安全 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况如果只有读操作,则线程安全如果有读写操作,则这段代码是临界区,需要考虑线程安全局部变量是否线程安全?局部变量是线程安全的但局部变量引用的对象则未必如果该对象没有逃离方法的作用访问,它是线程

2020-08-22 16:58:27 144

原创 JAVA 多线程学习笔记之第三章内容

3.1创建与运行线程JAVA 创建线程的三种方法1.直接使用 Thread// 创建线程对象Thread t = new Thread() { public void run() { // 要执行的任务 }};// 启动线程t.start();2.使用 Runnable 配合 ThreadRunnable runnable = new Runnable() { public void run(){ // 要执行的任务 }};// 创建线程对象Thread t = new

2020-08-21 16:24:13 88

原创 JAVA 多线程学习笔记之第二章内容

2.2并行与并发单核 cpu 下,线程实际还是 串行执行 的。操作系统中有一个组件叫做任务调度器,将 cpu 的时间片(windows下时间片最小约为 15 毫秒)分给不同的程序使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是 同时运行的 。总结为一句话就是: 微观串行,宏观并行 ,并发图解并行图解结论单核 cpu 下,多线程不能实际提高程序运行效率,只是为了能够在不同的任务之间切换,不同线程轮流使用cpu ,不至于一个线程总占用 cpu,别的线程没法干活多核

2020-08-21 16:07:29 85

原创 vue history模式刷新404

vue hash模式下,URL中存在’#’,用’history’模式就能解决这个问题。但是history模式会出现刷新页面后,页面出现404。解决的办法是用nginx配置一下。这是在网上查到的,但是我不是用nginx的不知道怎么解决先用回hash模式在这里记录一下以后找到解决办法更新...

2020-08-21 14:24:07 431

原创 JVM 学习入门 JVM探究「狂神说」

面试常见:●请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新?●什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析?●JVM的常用调优参数有哪些?●内存快照如何抓取,怎么分析Dump文件?●谈谈JVM中,类加载器你的认识学习目录:1.JVM在系统中的位置2.JVM的体系结构...

2020-08-19 16:57:36 950

原创 JAVA 容器学习之HashSet

HashSet是采用哈希算法实现,底层实际是用HashMap实现的(HashSet本质就是一个简化版的HashMap),因此,查询效率和增删效率都比较高。代码: HashMap map; private static final Object PRESENT = new Object(); public TestHashSet(){ map = new HashMap(); } public int size(){ retu

2020-08-18 21:49:15 71

原创 JAVA 容器学习之HashMap

HashMap采用哈希算法实现,是Map接口最常用的实现类。 由于底层采用了哈希表存储数据,我们要求键不能重复,如果发生重复,新的键值对会替换旧的键值对。 HashMap在查找、删除、修改方面都有非常高的效率。PS:HashTable类和HashMap用法几乎一样,底层实现几乎一样,只不过HashTable的方法添加了synchronized关键字确保线程同步检查,效率较低。HashMap与HashTable的区别 1. HashMap: 线程不安全,效率高。允许key或value为null。

2020-08-18 21:43:10 82

原创 JAVA 容器学习之LinkedList

LinkedList底层用双向链表实现的存储。特点:查询效率低,增删效率高,线程不安全。双向链表也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向前一个节点和后一个节点。 所以,从双向链表中的任意一个节点开始,都可以很方便地找到所有节点。LinkedList的存储结构图删除节点图解(蓝色是新链接) public void remove(int index){ Node temp = header; for(int i=0;i<index

2020-08-18 21:17:19 75

原创 JAVA 容器学习之ArrayList

ArrayList底层是用数组实现的存储。 特点:查询效率高,增删效率低,线程不安全。我们一般使用它ArrayList的扩容本质上是新建新的大数组,将久数组拷贝过去remove, add操作也是差不多的原理 public void remove(int index){ checkRange(index); int moveNum = elementData.length - index - 1; if(moveNum != 0){

2020-08-18 20:24:23 68

原创 springboot 应用resetful

@ResponseBody @RequestMapping(value = "/admin/schools", method = RequestMethod.GET) public String getProvinces(){ resetfulRepond respond = new resetfulRepond(ResetfulStatus.SUCCESS, "获取学校信息成功", yibanSchoolService.getAllSchool()); ...

2020-08-15 16:06:40 161

原创 vue 跨域与检验token的拦截器同时配置导致跨域失败

参考文章:https://blog.csdn.net/qq_39007083/article/details/103582232VUE 跨域时好像会先发一个option的请求只要在token的拦截器里面加这个就行 if(request.getMethod().equals("OPTIONS")){ //在拦截器中设置允许跨域 response.setHeader("Access-Control-Allow-Origin", "*");.

2020-08-15 15:55:52 569

原创 element-ui select下拉框默认值

先上代码 <el-select v-model="addForm.school" placeholder="请选择学校"> <el-option v-for="item in schools" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select>我是用 v-model=

2020-08-15 15:52:01 1397 1

原创 ElementUI和Axios提交带有文件的表单

完整表单代码 <el-form :model="addForm" ref="addFormRef" label-width="75px"> <el-form-item label="学校" prop="school"> <el-select v-model="addForm.school" placeholder="请选择学校"> <el-option v-for="item in school

2020-08-15 15:48:50 566

原创 MyBatis之Mybatis Generator代码生成

1.修改pom.xml,添加mybatis-generator-maven-plugin插件<build> <plugins> <!-- mybatis代码生成插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>

2020-08-13 20:27:21 92

原创 vue中常用的验证的正则表达式(手机号验证 邮箱验证 纯数字验证)

判断年纪 const age = /^[0-9]*$/判断是否邮箱 const reg = /^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;判断手机号码const reg = /^[1][3,4,5,7,8][0-9]{9}$/;

2020-08-13 16:37:23 641

原创 VUE之promise的使用

promise是什么?1、主要用于异步计算2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果3、可以在对象之间传递和操作promise,帮助我们处理队列promise可以实现异步操作所以可以避免界面冻结(未响应)new Promise( function (resolve, reject) { // 一段耗时的异步操作 resolve('成功') // 数据处理完成 // reject('失败') // 数据处理出错 }).then( (re

2020-08-12 16:13:30 224

原创 vue Element表单预验证

表单完整代码: <!-- 登陆表单 --> <el-form :model="form" :rules="login_rules" ref="form" label-width="0px" class="login_form" > <!-- 用户名 --> <el-form-item prop="username">

2020-08-12 14:01:12 332

原创 vue之 v-bind和v-model的区别

1.v-bind用来绑定数据和属性以及表达式, 页面数据改变不会令绑定的数据改变,但变量数据改变会令他改变,缩写为’:’2.v-model使用在表单中,实现双向数据绑定的,即任一方改变另一方都会随之改变,在表单元素外使用不起作用...

2020-08-12 11:01:01 196

原创 mybaits 使用association 关联返回嵌套数据

public class YibanDetilBean { private int id; private YibanSchoolBean school; private YibanAwardBean award; private String brief; private String picName; private String target;}与YibanSchoolBean 和YibanAwardBean是关联的需要加resultMap

2020-08-11 15:46:57 168

原创 HTML jquery onclick click都无法触发问题

第一、在动态生成的DIV中加入这个发现不会触发后来发现是因为href 里面加了这样的代码<a href="javascript:;">会导致onclick不能触发第二、添加类似这样的事件捕捉也是不能触发的,因为div是动态生成的,不弄绑定上去...

2020-08-11 15:42:33 642

原创 VUE之计算属性computed

计算属性computed 是为了减少类似模板逻辑的出现,并且让属性支持多行表达式<div id="example"> {{ message.split('').reverse().join('') }}</div>如果项目中频繁使用 会降低代码可读性 并且难以维护,并且如果是多行的表达式也不能适用这时候就要用到计算属性computed了<div id="example"> <p>Original message: "{{ message }

2020-08-10 10:42:58 164

原创 VUE之插值

文本插值:{{}}里面的值修改会重新渲染<span>Message: {{ msg }}</span>通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。但请留心这会影响到该节点上的其它数据绑定:<span v-once>这个将不会改变: {{ msg }}</span>双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,需要使用 v-html<p>Using mus

2020-08-10 10:21:59 712

原创 mybaits 只增加某记录字段数值

例子:xml:<update id="addUserPoints"> UPDATE userinfo SET points = points + #{addPoints} WHERE openid = #{openId}</update>mapper:int addUserPoints(String openId, int addPoints);

2020-08-08 16:48:49 184

原创 JAVA设计模式之六大原则

参考资料:https://www.cnblogs.com/pony1223/p/7594803.html主要是对上面参考资料的总结和整理1.单一职责:一个类只负责一项职责。class Terrestrial{ public void breathe(String animal){ System.out.println(animal+"呼吸空气"); }}class Aquatic{ public void breathe(String animal){

2020-08-08 16:43:59 210

原创 springboot上传文件大小限制修改

由于springboot具有几个版本,不同版本对于文件上传最大限制的配置也有所不同。所以要注意springboot本身的版本,不然会一直报错在springboot1.3版本中:multipart.maxFileSize在springboot1.4与springboot1.5版本中:spring.http.multipart.max-file-size在springboot2.0版本中:spring.servlet.multipart.max-file-size有一点要注意例如spri

2020-08-07 16:55:23 337

原创 springboot+jwt实现token认证

首先编写拦截器,拦截请求@Componentpublic class LoginInterceptor implements HandlerInterceptor { /** * 在请求被处理之前调用 * @param request * @param response * @param handler * @return */ @Override public boolean preHandle(HttpServle

2020-08-07 16:21:23 130

原创 微信小程序之离谱命名

wx.request({ url: "http://" +server + "/api", data:{ status : 0, api : api, msg : msg }, method:'POST', headers: {"content-type": "application/json", "Authorization" : wx.getStorageSync("token") || ""}..

2020-08-07 15:41:28 1459

原创 mysql 模糊搜索

参考资料 https://www.cnblogs.com/mianbaoshu/p/10930491.html这篇文章已经很详细了Mysql 使用通配符进行模糊查询(like,%,_)通配符的分类1)%百分号通配符: 表示任何字符出现任意次数 (可以是0次).2)_下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符.like操作符LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较.注意: 如果在使用like操作符时,后面的没有使用通用匹配符效果是和

2020-08-06 15:28:48 167

原创 微信小程序 动态添加VIEW

参考资料https://developers.weixin.qq.com/miniprogram/dev/component/picker-view.htmlhttps://blog.csdn.net/hxfghgh/article/details/80521890 <picker-view indicator-style="height: 25px;" style="width: 75%; height: 50px; font-size: 30rpx;" value="{{choice}}"

2020-08-06 11:35:35 832

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除