上下文

异步编程基础

╄→尐↘猪︶ㄣ 提交于 2020-01-31 15:51:00
>>返回《C# 并发编程》 1. 概述 2. 报告进度 3. 等待一组任务完成 4. 异常处理 5. 等待任意一个任务完成 6. 避免上下文延续 7. async void 1. 概述 前面的文章介绍了标识了 async 和 await 的代码,是怎么被线程执行的。 >>同步上下文-7.5 异步编程(Async) 下面介绍一些 类库 和常用的 API 。 2. 报告进度 使用 IProgress<T> 和 Progress<T> 类型 构造 Progress<T> 实例时捕获当前 同步上下文 实例; Progress<T> 实例的 ProgressChanged 事件被调用时使用上面捕获的 同步上下文 ; 如果在执行构造函数的线程没有同步上下文时(隐含使用的Default同步上下文),则将在 ThreadPool 中调用事件 static async Task DoProgressAsync(int count, IProgress<int> progress = null) { for (int i = 0; i < count; i++) { await Task.Delay(200); if (progress != null) progress.Report(i + 1); } } static async Task CallProgressAsync() { int

闭包

女生的网名这么多〃 提交于 2020-01-31 10:55:43
变量声明提升: 通过var定义的变量,在定义之前就可以访问到,不过值为undefined 函数声明提升: 函数在未声明以前就可以提前调用。 全局执行上下文。 var定义的全局变量=undefined,添加为window属性 function声明的全局函数= 赋值fun。添加为window的方法 this=赋值(window) 函数执行上下文 在调用函数时,执行函数体之前,创建对应的函数执行上下文对象(虚拟的,存在于栈中) 对局部的数据进行预处理 形参---》添加实参属性,添加为上下文的属性 argument ---》赋值(实参列表),添加为执行上下文的属性。 作用域与作用域链 函数n+1个作用域 闭包: <script type="text/javascript"> var btns = document.getElementsByTagName("button"); /* for(var i = 0,length=btns.length;i<length;i++){ var btn = btns[i] btn.index = i btn.onclick = function(){ alert("第"+(this.index+1)+"个"); } }*/ for(var i = 0,length=btns.length;i<length;i++ ){ (function(i){/

理解和使用SQL Server中的并行

牧云@^-^@ 提交于 2020-01-31 07:09:54
许多有经验的数据库开发或者DBA都曾经头痛于并行查询计划,尤其在较老版本的数据库中(如sqlserver2000、oracle 7、mysql等)。但是随着硬件的提升,尤其是多核处理器的提升,并行处理成为了一个提高大数据处理的高效方案尤其针对OLAP的数据处理起到了很好的作用。 充分高效地利用并行查询需要对调度、查询优化和引擎工作等有一个比较好的了解,但是针对一般场景的应用我们只需要如何常规使用即可,这里也就不深入描述了,感兴趣可以一起讨论。 那么这里我就简单介绍下SQLServer中并行的应用? 什么是并行? 我们从小就听说过“人多力量大”、“人多好办事”等,其思想核心就是把一个任务分给许多人,这样每个人只需要做很少的事情就能完成整个任务。更重要的是,如果额外的人专门负责分配工作,那么任务的完成时间就可以大幅减少了。 数糖豆 设想你正面对一个装满各式各样糖豆的罐子,并且要求书有多少个。假设你能平均每秒数出五个,需要大于十分钟才能数完这个盒子里的3027个糖豆。 如果你有四个朋友帮助你去做这个任务。你就有了多种策略来安排这个数糖豆任务,那让我们模仿SQLServer 将会采取的策略来完成这个任务。你和4个朋友围坐在一个桌子四周,糖果盒在中心,用勺子从盒子中拿出糖豆分给大家去计数。每个朋友还有一个笔和纸去记录数完的糖豆的而数量。 一旦一个人输完了并且盒子空了,他们就把自己的纸给你

论文笔记——Contextual Multi-armed Bandit Algorithm for Semiparametric(半参数) Reward Model

丶灬走出姿态 提交于 2020-01-31 05:35:16
Contextual Multi-armed Bandit Algorithm for Semiparametric(半参数) Reward Model 摘要: 事实证明,上下文多臂匪徒(MAB)算法有望在顺序决策任务(例如新闻推荐系统,网页广告放置算法和移动健康)中最大化累积reward。但是,大多数提出的上下文MAB算法都假定奖励和行为上下文之间存在线性关系。本文针对支持非平稳性的松弛,半参数奖励模型提出了一种新的上下文MAB算法。与考虑相同模型的两个替代算法相比,所提出的方法具有更少的限制,更易于实现且速度更快,同时实现了严格的后悔上限。 即提出一种新型MAB算法(宽松、半参数的reward模型)——支持非平稳态 一、introduction MAB问题会公式化顺序决策问题——选择action(arm),最后最大化积累的rewards 不断选择一个arm,同时收到对应的rewards,学习者会学习和收集信息,然后积累信息,最后根据现有的信息去选择最优的arm 之前的算法都是假设reward的期望和上下文具有是不变线性关系———会严格限制现实中reward的定义 本文中, 提出新型的上下文MAB算法——对rewards的分布会有宽松的假设 该假设可以针对不稳定性的reward包含 加法截距项 +原来的 时不变线性项 );该截距项随时间变化,但不取决于action ####

JavaScript基础学习(二)

寵の児 提交于 2020-01-31 00:31:25
题目:要求输入一串低于10位的数字,输出这串数字的中文大写(类似于银行的读法) input:10000 output:壹万 input:1001010 output:壹佰万壹仟零壹拾 每个JavaScript函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供JavaScript引擎存取,[[scope]]就是其中一个。 [[scope]]指的就是我们所说的作用域,其中存储了运行期上下文的集合。 作用域链:[[scope]]中所存储的执行期上下文对象的集合,这个集合呈链式链接,这种链式链接叫做作用域链。 其实, 这个[[scope]]存的是作用域链,而作用域链是由多个执行期上下文连接而成的 。 运行期上下文:当函数执行时,会创建一个称为执行期上下文的内部对象(AO/GO)。一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行上下文都是独一无二的,所以多次调用一个函数会导致创建多个执行上下文,当函数执行完毕,他所产生的执行上下文被销毁。 function test ( ) { var a = 10 ; return a ; } test ( ) ; //--->AO test ( ) ; //--->AO 上面产生的两个AO是不一样的。 查找变量:从作用域链的顶端依次向下查找 。 例子: function a ( ) { function b (

前端面试大全—javascript面试(2)—js

自古美人都是妖i 提交于 2020-01-30 22:17:24
1,执行上下文 // js引擎在代码正式执行之前会做一个预处理的工作: 1,收集变量 2,收集函数 执行上下文,上下文对象: 代码正式执行之前会进入执行环境 1 , 创建变量对象: 1 ) 变量 2 ) 函数及函数的参数 3 ) 全局: window 4 ) 局部: 抽象的但是确实存在 2 , 确认 this 的指向 1 ) 全局: this -- - 》 window 2 ) 局部: this -- - 》 调用其的对象 , 3 , 创建作用域: 父级作用域链 + 当前的变量对象 4 , 扩展: ECObj = { 变量对象: { 变量,函数,函数的形参 } scopeChain : 父级作用域链 + 当前的变量对象 this : { window || 调用其的对象 } } 2,bind,call和apply的区别---改变this指向的方法 1、相同点: 三个函数都会改变this的指向(调用这三个函数的函数内部的this) 2、不同点: 1)、bind 和call一样,但是bind会产生新的函数,(把对象和函数绑定死后,产生新的函数) 2)、call和apply不会产生新的函数,只是在调用时,绑定一下而已。 3)、call和apply的区别,第一个参数都是要绑定的this,apply第二个参数是数组(是函数的所有参数),call把apply的第二个参数单列出来。 obj .

Flask 中文手册 0.10 文档

a 夏天 提交于 2020-01-30 06:22:15
Flask 中文手册 0.10 文档 欢迎使用 Flask 欢迎阅读 Flask 文档。 本文档分为几个部分。我推荐您先从 安装 开始,之后再浏览 快速入门 章节。 教程 比快速入门更详细地介绍了如何用 Flask 创建一个完整的 应用(虽然很小)。 想要深入了解 Flask 内部细节,请查阅 API 文档。 Flask 代码模式 章节介绍了一些常见模式。 Flask 依赖两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具 集。此文档不包含这两个库的文档。要细读它们的文档,请点击下面的链接: Jinja2 文档 Werkzeug 文档 用户指南 这部分文档很枯燥,以介绍 Flask 的背景开始,然后注重说明 Flask 的 Web 开发的各个步骤。 前言 “微” 是什么意思? 配置与惯例 与 Flask 共成长 给有经验程序员的前言 Flask 中的线程局部变量 Web 开发危机四伏 Python 3 的状态 安装 virtualenv 全局安装 活在边缘 Windows 下的 pip 和 distribute 快速入门 一个最小的应用 调试模式 路由 静态文件 模板渲染 访问请求数据 重定向和错误 关于响应 会话 消息闪现 日志记录 整合 WSGI 中间件 部署到 Web 服务器 教程 介绍 Flaskr 步骤 0: 创建文件夹 步骤 1: 数据库模式 步骤

EF--EntityState相互转换

偶尔善良 提交于 2020-01-29 20:13:37
EF对数据做什么样的操作,是根据EF的上下文实体状态决定, 实体状态 有以下5种状态,下面我们就分别看下这5种状态   数据准备,我们看到学生表里有20000名学生记录,最后1位学生的学生编号为0000020000 1、Detached--实体跟上下文压根没关系 我们看到我新创建了名学生,学号为 0000020001,他是第20001位学生,此时打印上下文实体状态,实体和上下文是分离状态,没有任何关系, Detached是表示连内存跟踪都没有建立,跟上下文dbContext没有任何关系 Student newStudent = new Student() {   Student_ID = "0000020001",   Student_Name = "猪猪打屁股",   Student_Sex = "男",   Student_Identity_Card = "610102198307122319",   Student_Birthday = DateTime.Now,   Student_Email = "menglin2010@126.com",   Student_Class = "741903613@qq.com",   Create_Time = DateTime.Now }; //1、Detached--实体跟context压根没关系 {   using

Java并发编程的艺术

不羁的心 提交于 2020-01-29 18:07:25
java并发编程的艺术 并发编程的挑战 并发编程的挑战:并发编程的目的是为了让程序运行的更快,但是并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,会面临非常多的挑战,比如 上下文切换问题,死锁问题,以及受限于硬件和软件的资源限制问题。 上下文切换 即使是单核的处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停的切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是在切换前会保存上一个任务的状态,以便下一次切换回这个任务时,可以再加载这个任务的状态。 多线程不一定快,因为线程有创建和上下文切换的开销。 测试上下文切换的次数和时长 使用Lmbench3可以测量上下文切换的时常 使用vmstat可以测量上下文切换的次数(CS表示上下文切换的次数) 如何减少上下文切换 1、无锁并发编程:多线程竞争锁时会引起上下文切换,所以多线程处理数据时可以使用一些办法来避免使用锁,如 将数据的Id根据Hash算法取模分段,不同的线程处理不同端的数据 2、CAS算法 3、使用最小线程:避免创建不需要的线程,比如任务很少,但是创建了大量的线程来处理,这样会让大量的线程处于等待状态。 4

《Sequence Models》课堂笔记

拜拜、爱过 提交于 2020-01-29 16:37:01
Lesson 5 Sequence Models 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第五门课程的课程笔记。 参考了其他人的笔记继续归纳的。 符号定义 假如我们想要建立一个能够自动识别句中人名地名等位置的序列模型,也就是一个命名实体识别问题,这常用于搜索引擎。命名实体识别系统可以用来查找不同类型的文本中的人名、公司名、时间、地点、国家名和货币名等等。 我们输入语句 "Harry Potter and Herminoe Granger invented a new spell." 作为输入数据 \(x\) ,我们想要这个序列模型输出 \(y\) ,使得输入的每个单词都对应一个输出值,同时这个 \(y\) 能够表明输入的单词是否是人名的一部分。技术上来说,还有更加复杂的输出形式,它不仅能够表明输入词是否是人名的一部分,它还能够告诉你这个人名在这个句子里从哪里开始到哪里结束。 以简单的输出形式为例。这个输入数据是 9 个单词组成的序列,所以最终我们会有 9 个特征集合来表示这 9 个单词,并按序列中的位置进行索引, \(x^{<1>},x^{<2>}\) 直到 \(x^{<9>}\) 来索引不同的位置。 输出数据也是一样,用 \(y^{<1>},y^{<2>}\) 到 \(y^{<9>}\) 来表示输出数据。同时使用 \(T_x\) 来表示输入序列的长度,