node

ConcurrentLinkedQueue多线程安全的并发删除队列元素

流过昼夜 提交于 2020-01-04 11:52:55
1、remove方法 public boolean remove(Object o) { if (o != null) { Node<E> next, pred = null; for (Node<E> p = first(); p != null; pred = p, p = next) { boolean removed = false; E item = p.item; if (item != null) { if (!o.equals(item)) { next = succ(p); continue; } removed = p.casItem(item, null); } next = succ(p); if (pred != null && next != null) // unlink pred.casNext(p, next); if (removed) return true; } } return false; } 2、初始化队列 3、线程过来 执行remove("王五") 1)点击下面的first() for (Node<E> p = first(); p != null; pred = p, p = next) { first()方法如下: Node<E> first() { restartFromHead: for (;;) { for (Node<E>

使用Theia——构建你自己的IDE

与世无争的帅哥 提交于 2020-01-04 10:34:29
上一篇: Theia架构 构建你自己的IDE   本指南将教你如何构建你自己的Theia应用。 必要条件   你需要安装node 10版本(译者:事实上最新的node稳定版即可): curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash nvm install 10   以及yarn: npm install -g yarn   还需要确保已安装python 2.x,可通过 python --version 来检查。 安装   首先请创建一个空目录,然后切换到这个目录下: mkdir my-app cd my-app   在这个目录下创建 package.json : { "private": true, "dependencies": { "typescript": "latest", "@theia/typescript": "next", "@theia/navigator": "next", "@theia/terminal": "next", "@theia/outline-view": "next", "@theia/preferences": "next", "@theia/messages": "next", "@theia/git": "next", "

学习使用 笔记3

拜拜、爱过 提交于 2020-01-04 09:27:45
ubuntu 主机中进行了安装node,使用apt-get 命令来安装指定的软件,自己安装了一些 node ,如 在命令行中输入 sudo apt-get install node 后回车就等待中吧。 这几天用下来感觉这家的“三丰云免费云服务器”,的速度和性能上面蛮稳定的。通在云服务器上的配置后,可以通过ssh进行远程连接,ssh反应速度蛮快的。关于安装系统方面以win 和 ubuntu 进行安装。对于我在初学者有这样的一个云服务器确实蛮实用的。 来源: CSDN 作者: mydk_12 链接: https://blog.csdn.net/mydk_12/article/details/103792461

iOS自动化环境搭建——macaca

社会主义新天地 提交于 2020-01-04 03:48:19
macaca-java for ios 自动化环境搭建 基础原理解析:https://testerhome.com/topics/6608 一、环境搭建 1、安装eclipse; -----Java开发调试工具 下载地址:https://www.eclipse.org/downloads/ PS:java调试工具,可根据自身情况选择不下载。 2、安装node.js 中文网地址:http://nodejs.cn/ node.js安装方式一: (1)安装brew /usr/bin/ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)" (2)安装node brew install node (3)验证node安装 验证node安装:node -v 验证npm安装:npm -v node.js安装方式二: (1)安装node 访问node.js官网(https://nodejs.org/en/download/),下载安装包,一键安装; (2)验证node安装 node -v npm -v 3、安装xcode 进入https://developer.apple.com/download/more/网站找到要下载版本的xcode(xcode安装需要8.3或更高的版本)

npm install时报错:python2

点点圈 提交于 2020-01-04 03:06:35
问题描述:在github上clone下的项目执行npm install时报python环境错误 确保windows已安装node.js/vue/vue-cli 一、cmd下运行npm install -globabl -production windows-build-tools一键安装 1、python(v2.7 ,3.x不支持); 2、visual C++ Build Tools,或者 (vs2015以上(包含15)) 3、.net framework 4.5.1 二、在控制台输入:npm install -g node-gyp安装node-gyp 三、安装后检查:node-gyp list 最后到项目下执行npm install…成功。。。 后记: 如果还是提示“python找不到或者环境不对” npm config set python C:\Users\Administrator\.windows-build-tools\python27\python.exe 来源: CSDN 作者: Mr_Chengxz 链接: https://blog.csdn.net/qq_24788629/article/details/103819561

react过渡动画效果的实现,react-transition-group

筅森魡賤 提交于 2020-01-04 01:38:11
本文介绍react相关的过渡动画效果的实现 有点类似vue的transition组件,主要用于组件mount和unmount之前切换时应用动画效果 安装 cnpm install react-transition-group --save transition动画 import React from 'react' import ReactDOM from 'react-dom' import Transition from 'react-transition-group/Transition'; const duration = 300; const defaultStyle = { transition: `opacity ${duration}ms ease-in-out`, opacity: 0, width: "100px", height: "100px", background: "red" } const transitionStyles = { entering: { opacity: 0 }, entered: { opacity: 1 }, }; class MyComponent extends React.Component { constructor() { super(); this.state = { in: false } }

原生js实现 vue的数据双向绑定

微笑、不失礼 提交于 2020-01-04 00:43:20
原生js实现一个简单的vue的数据双向绑定 vue是采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性的 setter , getter ,在数据变动时发布消息给订阅者,触发相应的监听回调 所以我们要先做好下面3步: 1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。 2.实现一个订阅者Watcher,可以收到属性的变化通知并执行相应的函数,从而更新视图。 3.实现一个解析器Compile,可以扫描和解析每个节点的相关指令,并根据初始化模板数据以及初始化相应的订阅器。 1. 实现一个Observer Observer是一个数据监听器,主要依赖于Object.defineProperty()方法,而这个方法在ie8及以下存在兼容问题,请看( MDN defineProperty )所以如vue官网所说: 兼容性 Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有( 兼容 ECMAScript 5 的浏览器 。) 正因为这个方法,我们就可以利用 Obeject.defineProperty() 来监听属性变动 那么就可以把需要observer的数据对象进行递归遍历,给他的每个属性都可以加上 get,set。

win server安装Nodejs

雨燕双飞 提交于 2020-01-04 00:36:48
下载 官网下载安装包 https://nodejs.org/en/download/ 这里选择安装zip版本。 2.安装 下载好的包文件node-v12.14.0-win-x64.zip解压到:C:\Program Files\nodejs中。 然后在目录中新建 node-cache 和 node-global 目录。主要用来放npm全局模块的安装目录。 3.配置环境变量 新建系统变量。 变量名:NODE_HOME 变量值(你的安装目录):C:\Program Files\nodejs 编译path变量,新增 %NODE_HOME% %NODE_HOME%\node-global 4.配置 打开CMD,输入: npm config set prefix "C:\Program Files\nodejs\node-global" npm config set cache "C:\Program Files\nodejs\node-cache" 设置npm国内源,更改为taobao。 npm config set registry "https://registry.npm.taobao.org" 5.查看测试版本 cmd命令输入: node -v npm -v 来源: 51CTO 作者: Blue后花园 链接: https://blog.51cto.com/10874766

前端工程化

馋奶兔 提交于 2020-01-04 00:25:23
前端架构: 1.前端工程化 web应用复杂度的增加,特别是单页面应用的风靡。组件化,工程化,自动化成了前端发展的趋势。或者说一线的互联网公司就是这么做的。 每个前端团队都在打造自己的前端开发体系,这通常是一个东拼西凑,逐渐磨合的过程,在技术发展日新月异的今天,这样的过程真的是不可抽象和复制的么?本文希望能够通过系统的拆解前端开发体系为大家提供体系设计思路参考。 前端工程的3个阶段 第一阶段: 库/框架选型 Animate.css jQuery vue.js underscore.js React.js Backbone.js Bootstarp zepto.js jade normalize.css compass Angular.js 解决开发效率 第二阶段: 简单构建优化 选择构建工具,对代码进行压缩,校验,之后再以页面为单位进行简单的资源合并。 第三阶段: JS/CSS模块化开发 解决维护效率 js的模块化方案 ADM/CDM/UMD/ES6 Module css的模块化:less,sass。 第四阶段: 前端是一个技术问题较少,工程问题较多的开发领域 当我们要开发一款完整的Web应用时,前端将面临更多的工程问题,比如: - 大体量:多功能、多页面、多状态、多系统; - 大规模:多人甚至多团队合作开发; - 高性能:CDN部署、缓存控制、文件指纹、缓存复用、请求合并、按需加载

简易版本vue的实现

 ̄綄美尐妖づ 提交于 2020-01-04 00:24:50
用了 Vue 也有两年时间了,一直以来都是只知其然,不知其所以然,为了能更好的使用 Vue 不被 Vue 所奴役,学习一下 Vue 底层的基本原理。 Vue 官网有一段这样的介绍:当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项, Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter 。 Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器。 通过这一段的介绍不难可以得出,Vue是通过 Object.defineProperty 对实例中的 data 数据做了挟持并且使用 Object.defineProperty 的 getter/setter 并对其进行处理之后完成了数据的与视图的同步。 这张图应该不会很陌生,熟悉 Vue 的同学如果仔细阅读过 Vue 文档的话应该都看到过。猜想一下 Vue 使用 Object.defineProperty 做为 ViewModel ,对数据进行挟持之后如果 View 和 Model 发生变化的话,就会通知其相对应引用的地方进行更新处理,完成视图的与数据的双向绑定。 下面举个例子: html: <div id="name"></div>