next

virtual memory(4)

。_饼干妹妹 提交于 2021-02-14 09:33:42
Linux organizes the virtual memory as a collection of areas (also called segments ). An area is a contiguous chunk of existing (allocated) virtual memory whose pages are related in some way. Figure 9.27 highlights the kernel data structures that keep track of the virtual memory areas in a process. The kernel maintains a distinct task structure (task_ struct in the source code) for each process in the system. The elements of the task structure either contain or point to all of the information that the kernel needs to run the process (e.g., the PID , pointer to the user stack, name of the

【强化学习】python 实现 saras lambda 例一

会有一股神秘感。 提交于 2021-02-14 08:33:58
本文作者:hhh5460 本文地址: https://www.cnblogs.com/hhh5460/p/10147265.html 将例一用saras lambda算法重新撸了一遍,没有参照任何其他人的代码。仅仅根据伪代码,就撸出来了。感觉已真正理解了saras lambda算法。记录如下 0. saras lambda算法伪代码 图片来源:https://morvanzhou.github.io/static/results/reinforcement-learning/3-3-1.png(莫凡) 1. saras lambda算法真实代码 # e_table是q_table的拷贝 e_table = q_table.copy() # ... # saras(lambda)算法 # 参见:https://morvanzhou.github.io/static/results/reinforcement-learning/3-3-1.png for i in range(13 ): # 0. e_table清零 e_table *= 0 # 1.从状态0开始 current_state = 0 # 2.选择一个合法的动作 current_action = choose_action(current_state, epsilon) # 3.进入循环,探索学习 while

串行执行promise

亡梦爱人 提交于 2021-02-13 20:22:58
Promise提供了Promise.all,Promise.race,Promise.allSettled等多个Promise对象间的运行关系,如果并行运行可以用Promise.all来进行处理,如果要串行运行可以用数组的reduce来进行处理,处理代码如下: const serialPromises = function (promises) { promises.reduce((prev, next) => prev.then((preVal) => next(preVal)), Promise.resolve()); }   测试代码 const fn1 = function (args) { console.log('fn1',args) return Promise.resolve('111') } const fn2 = function (args) { console.log('fn2',args) return Promise.resolve('222') } const fn3 = function (args) { console.log('fn3',args) return Promise.resolve('333') } serialPromises([fn1, fn2, fn3])   测试结果: fn1 undefined fn2 111 fn3

java的Map

和自甴很熟 提交于 2021-02-13 16:31:33
HashMap HashMap和Hashtable区别 Hashtable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap,这如同Vector和ArrayList一样。 Hashtable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。 两者的遍历方式大同小异,Hashtable仅仅比HashMap多一个elements方法,两者都能通过values()方法返回一个Collection,然后进行遍历,两者也可以通过entrySet()返回一个Set,然后进行遍历处理。 Hashtable使用Enumeration, HashMap使用Iterator。 哈希值的使用不同,Hashtable直接使用对象的hashCode,而HashMap重新计算hash值,而且用于代替求模。 Hashtable的hash数组默认大小是11,增加的方式是old * 2 + 1;HashMap的hash数组默认大小是16,而且一定是2的指数。 Hashtable基于Dictionary类,而HashMap基于AbstractMap类。 HashMap中的key可以是任何对象或数据类型吗 可以为null,但不能是可变对象,如果是可变对象的话,对象中的属性改变时,则相应的对象hashCode也进行相应改变

Netty中NioEventLoopGroup的创建源码分析

怎甘沉沦 提交于 2021-02-13 13:54:40
NioEventLoopGroup的无参构造: 1 public NioEventLoopGroup() { 2 this (0 ); 3 } 调用了单参的构造: 1 public NioEventLoopGroup( int nThreads) { 2 this (nThreads, (Executor) null ); 3 } 继续看到双参构造: 1 public NioEventLoopGroup( int nThreads, Executor executor) { 2 this (nThreads, executor, SelectorProvider.provider()); 3 } 在这里是使用JDK中NIO的原生API:SelectorProvider的provider,产生了一个SelectorProvider对象调用,继续调用三参构造。 关于SelectorProvider在我前面的博客中有介绍过: 【Java】NIO中Selector的创建源码分析 ,在Windows下默认创建了WindowsSelectorProvider对象。 继续看三参构造: 1 public NioEventLoopGroup( int nThreads, ThreadFactory threadFactory, SelectorProvider selectorProvider) {

iOS开发简记(9):APPStore审核

随声附和 提交于 2021-02-13 10:01:58
"觅知音"这个APP的第一个版本从提交审核到上架,历时三个星期,其中遇到一些审核上的问题,它的处理或许能帮助到遇到同样问题的小伙伴们,所以这里列举出来,这三个星期如何跟苹果的审核团队“斗智斗勇”。 (1)Guideline 2.1 - Information Needed 这是问题的标题,问题下面还详细列举了需要你确认的各个事项。 简单来说,如果你不确认,审核就会一直中断;如果你重新提交APP,那就进到下一次审核,会再次遇到这个问题,而且进审的时间会延长。 所以,最好的办法是,先不要重新提交APP,并且,在Resolution Center中,详细确认每个事项。比如,我是这样确认的: 1.1.6 包含虚假信息、功能或者误导性元数据 –我仔细检查了“元数据”,并没有发现这样的数据。慎重起见,我还是把“关键词”删除了一些,避免误导。 2.3.0 与 2.3.1:热更新、App 动态开关、重定向赌博、彩票网站 –这个APP没有热更新,也没有后台开头,更不会有涉黄涉赌或彩票类的内容。 3.1.1 使用苹果的内购机制来完成应用内购买 –这个APP没有内置购买,至少现在是没有的。 4.3 与其他应用重复 –我开发前搜索过类似idea的产品,并没有发现,所以才进行了开发。 5.2.1 缺乏提供 App 的相关资质 –这个APP没有使用歌曲、视频或其它需要版本授权的资源,APP中的语音均为用户制作

集合框架

心已入冬 提交于 2021-02-13 05:28:04
集合框架总图: 一、ArrayList 为什么要使用? 存放多个对象也可以使用数组,但是定义数组有局限性,例如先声明个长度为20的数组,如果存10个就浪费了空间,存25个又不够。所以引入容器,ArrayList就是一种常见的容器,容器的容量会随着存放的对象自动增多。 常用方法 例子: public class ArrayListTest { public static void main(String[] args) { // 泛型,list只能存string类型 // 下面这样写可以存各种类型 // ArrayList list1 = new ArrayList(); ArrayList<String> list = new ArrayList<String> (); list.add( "aaa" ); list.add( "bbb" ); list.add( "ccc" ); System.out.println(list); System.out.println( "之前的长度:"+ list.size()); list.add( "ddd" ); System.out.println( "新添加一个元素后的长度:"+ list.size()); System.out.println(list); // contains判断容器中是否有某元素 System.out

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it

杀马特。学长 韩版系。学妹 提交于 2021-02-13 03:52:36
链接: https://www.nowcoder.com/acm/contest/163/F 来源:牛客网 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 There is a matrix A that has N rows and M columns. Each grid (i,j)(0 ≤ i < N, 0 ≤ j < M) is painted in white at first. Then we perform q operations: For each operation, we are given (x c , y c ) and r. We will paint all grids (i, j) that meets to black. You need to calculate the number of white grids left in matrix A. 输入描述: The first line of the input is T(1≤ T ≤ 40), which stands for the number of test cases you need to

Eclipse进行可视化插件——WindowBuilder的安装

泄露秘密 提交于 2021-02-12 19:25:57
https://blog.csdn.net/yerenyuan_pku/article/details/82861589 WindowBuilder插件的简单介绍 大家都知道在做窗体程序的开发中,传统的Java语言在开发窗体应用程序中仅靠代码语句来实现对控件的控制显得不够灵活和准确,难以高效的开发具有良好用户界面的应用程序,所以我们应该寻找Java中可以拖拽控件来实现窗体绘制的插件。所幸的是找到了一种还算好用的插件——WindowBuilder,它是一款基于Eclipse平台的双向Java的GUI设计插件式的软件,它具备SWT/JFACE开发、Swing开发及GWT开发三大功能,是一款不可多得的Java体系中的WYSIWYG工具。 下载 打开浏览器,在地址栏中输入网址:http://www.eclipse.org/windowbuilder/。 单击Download按钮。 在打开的网站中单击如下link。 接着跳到一个下载页面,点击Download按钮进行下载即可。最后下载到的zip压缩包为repository.zip。 WindowBuilder离线安装 由于下载到本地之后是一个zip压缩文件,所以可离线安装WindowBuilder插件了。安装步骤如下: 打开Eclipse,Help→Install New Software...,出现如下图所示界面。 点击Add按钮

Eclipse 旧版本安装,WindowBuilder安装

淺唱寂寞╮ 提交于 2021-02-12 19:25:21
官网: https://www.eclipse.org/downloads/ 上面的箭头时在线安装版,下面是解压版。这里演示在线安装版,到下面的页面。 由上图得到eclipse的下载器 打开下载器得到下图 点击右上角的菜单,得到 点击,翻译成高级模式吧 点击Yes和No都行,确定是否安装到一个固定的位置。这里我点击No 选择eclipse的类型,下面是选择版本。点击next 这是一些基本功能外的功能,自己选择安装。next。 可以点击下面的Show all variables,这样可以选择安装目录,在上面选择安装目录。和目录名字。next。 Finish,OK。(如果网络不好,直接用解压版: https://www.eclipse.org/downloads/packages/ ) 安装WindowBuilder。打开eclipse,依次点击help,Install New Software。到下面的页面 点击Add添加下载组件的网址的标识和网址。Name栏的名字自定义,下面是我自己起的。 网址的解决,确定自己安装的eclipse版本。到网址: https://projects.eclipse.org/projects/tools.windowbuilder 找到与自己版本对应的WindowBuilder的版本。例如Photon 点击后转到新页面,在下面找到,应该是字母排序。