guqing

毕生所求无它,爱与自由而已

多线程基础篇

注:一般推荐采用实现接口的方式来创建多线程 线程的生命周期 线程安全问题 产生原因: 多个线程在操作共享的数据 操作共享数据的线程代码有多条 当一个线程在操作共享数据的多条代码过程中,其他线程参与了运算,就会导致线程安全问题 解决线程安全问题的思路: 就是将多条操作共享数据的代码封装起来,当线程 在执行这些代码的时候,必须要当前线程把这些代码都执行完毕后,其他线程才可以参与运算 在Java中,用同步代码块就可以解决这个问题 同步代码块的格式: 同步的好处: 解决了线程安全问题 弊端: 相对降低了效率,因为同步外的线程都会判断同步锁,消耗资源 同步的前提: 同步中必须有多个线程并使用同一个锁 案例分析: 分析上面代码是否存在线程安全问题,从产生线程安全问题的原因分析: 首先需要判断是否存在共享数据 操作共享数据的线程代码是否有多条 对于上面的代码Bank被线程任务执行 所以会产生线程安全问题,解决办法:加锁 同步代码块 同步函数(同步函数用的锁时this对象) 同步函数和同步代码块的区别: 同步函数的锁是固定的this,也就是当前的对象 同步代码块使用的锁是任意对象 建议使用同步代码块 静态同步函数的锁: 还是以上的实例,这样也是可以的,这说明静态同步函数的锁绝对不是this,因为静态函数根本就没有this,那锁是什么呢?

Redis 详解指南

9.Redis的复制(Master和Slave) 备机与主机使用slaveof ip 端口建立连接后备机会将主机的所有数据备份到备机 主从复制,读写分离:只有主机可以写,从机只能读,如果从机使用写命令会报错 如果主机挂了,备机依然是备机,不会夺位,除非手动操作 如果主机修复了,备机依然会继续备份无需任何操作 如果某台备机挂了,修复后启动redis会变成master,需要与主机重新连接才可以继续备份slaveof ip 端口 上一个Slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻master的写压力 中途变更转向:会清除之前的数据,重新建立,拷贝最新的 SLAVEOF no one可以使当前数据库停止与其他数据库的同步,转成主数据库 复制的原理 Slave启动成功连接到master后会发送一个sync命令 Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

Vue 学习之九Vue计算属性与webpack

文章已迁移到新地址,访问 https://guqing.xyz/archives/how-to-use-vue2

Vue 学习笔记之八获取组件对象和使用 vue-router

8 获取dom对象和组件的对象 ref 被用来给元素或子组件注册引用信息。 如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例: 关于 ref 注册时间的重要说明:因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在! 包含的功能有: 嵌套的路由/视图表 模块化的、基于组件的路由配置 路由参数、查询、通配符 基于 Vue.js 过渡系统的视图过渡效果 细粒度的导航控制 带有自动激活的 CSS class 的链接 HTML5 历史模式或 hash 模式,在 IE9 中自动降级 自定义的滚动条行为 9.1 路由写法和传参 引入vuejs和vue-router 9.2 嵌套路由

Vue 学习笔记之七组件的使用

7.4 组件的动态切换 首先注册两个组件,login和regist 组件的切换使用component标签的is属性 只要控制is的值即可控制组件的显示,如上通过点击事件改变cname的值来切换组件 7.5 父组件与子组件传值 父组件向子组件传值 定义组件 在组件中有一个props属性在其中定义变量负责接收父组件传递过来的值 然后在组件模板中使用插值表达式接收{{name}} 父组件如何向子组件传递值?

Vue 学习笔记之六进入/离开 & 列表过渡

包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animate.css 在过渡钩子函数中使用 JavaScript 直接操作 DOM 可以配合使用第三方 JavaScript 动画库,如 Velocity.js 6.2 transition过渡 Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进入/离开过渡 条件渲染 (使用 v-if) 条件展示 (使用 v-show) 动态组件 组件根节点 当插入或删除包含在 transition 组件中的元素时,Vue 将会做以下处理: 自动嗅探目标元素是否应用了 CSS 过渡或动画,如果是,在恰当的时机添加/删除 CSS 类名。

Vue 学习笔记之五Vue生命周期

beforeMount 类型:Function 详细: 在挂载开始之前被调用:相关的 render 函数首次被调用。 该钩子在服务器端渲染期间不被调用。 $nextTick 替换掉 mounted: 该钩子在服务器端渲染期间不被调用。 该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。 该钩子在服务器端渲染期间不被调用。 该钩子在服务器端渲染期间不被调用。 调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 该钩子在服务器端渲染期间不被调用。

Vue 学习笔记之四Vue的Ajax请求

Vue的Ajax请求 4.1 Vue-resource插件介绍 下载地址: $.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁。 另外,vue-resource还提供了非常有用的inteceptor功能,使用inteceptor可以在请求前和请求后附加一些行为,比如使用inteceptor在ajax请求时显示loading界面。 支持拦截器 拦截器是全局的,拦截器可以在请求发送前和发送请求后做一些处理。

Vue 学习笔记之三

3.4.1 钩子函数 一个指令定义对象可以提供如下几个钩子函数 (均为可选): **bind:**只调用一次,指令第一次绑定到元素时调用,在这里可以进行一次性的初始化设置。 3.4.2钩子函数参数 指令钩子函数会被传入以下参数: el:指令所绑定的元素,可以用来直接操作 DOM 。 3.4.3 自定义全局属性指令用法 使用自定义指令 3.4.4 自定义私有指令 使用自定义元素 3.4.5 函数简写 在很多时候,你可能想在 bind 和 update 时触发相同行为,而不关心其它的钩子。

Vue学习笔记之二Vue-Devtools及过滤器

Vue在chrome浏览器的调试工具Vue-Devtools 作用 vue-devtools是一款基于chrome游览器的插件,用于调试vue应用,这可以极大地提高我们的调试效率。 安装地址: 或者 2.1 vue过滤器 2.1.1 系统过滤器 关于系统过滤器的使用请参考文档:https://v1.vuejs.org/api/#Filters 注意:系统过滤器是Vue1.0中存在的,在vue2.0中已经删除了 2.1.2 自定义过滤器 2.1.2.1 私有过滤器 以上为创建一个私有日期格式化过滤器,使用方式与系统过滤器一样 2.1.2.2 全局过滤器 html代码同私有过滤器 js如下: 全局过滤器在全局共有,在不能的Vue对象中都可以使用