next

[译]Vulkan教程(15)图形管道基础之RenderPass

烂漫一生 提交于 2020-10-25 11:29:00
[译]Vulkan教程(15)图形管道基础之RenderPass Render passes Setup 设置 Before we can finish creating the pipeline, we need to tell Vulkan about the framebuffer attachments that will be used while rendering. We need to specify how many color and depth buffers there will be, how many samples to use for each of them and how their contents should be handled throughout the rendering operations. All of this information is wrapped in a render pass object, for which we'll create a new createRenderPass function. Call this function from initVulkan before createGraphicsPipeline . 在创建管道收工前,我们需要告诉Vulkan,渲染时要使用哪些帧缓存附件

让台积电独吃苹果的关键者,带着Chiplet技术首度“献声”SEMICON China

心已入冬 提交于 2020-10-25 04:10:28
     SEMICON China 2020 的中国国际半导体技术大会 CSTIC 2020,齐聚全球重量级的半导体技术领军者,分享当前最前沿、最热门的技术愿景。   此次受邀的 台积电研究发展组织系统整合技术副总余振华,在会中详解让摩尔定律持续的三大先进封装技术:整合型扇出 InFO、2.5D 的 CoWoS、3D IC,以及 Chiplet 小芯片趋势的兴起。      对于 Chiplet 小芯片近年来成为国际半导体厂、IC 设计公司的热议焦点, 余振华以三国演义的“天下大势,分久必合,合久必分”,来作为注解。   余振华毕业于台湾清华大学物理系,研究所转念材料,之后到美国佐治亚理工学院获得材料科学工程博士。他加入台积电超过 20 年,参与过不少“战役”,最有名一役当属 2000 年左右的 0.13 微米铜制程技术。    闻名业界的铜制程战役   约莫 1997 年时,当时执半导体技术牛耳的 IBM,首次发表铜制程技术,在此之前半导体都是采用铝制程。   铜的优势是电阻系数比铝低很多,但电流流量大时,会出现电迁移(electromigration)现象,若是电阻系数够低,可以降低电迁移所导致的原子流失。   铜制程的另一个关键是以 Low-K Dielectric(低介电质绝缘)作为介电层的材料。铜就像是骨头,Low K 材料是肌肉一样,彼此都非常关键。   

执行ArrayList的remove(object)方法抛异常?

一世执手 提交于 2020-10-25 00:34:20
简介 或许有很多小伙伴都尝试过如下的代码: ArrayList<Object> list = ...; for (Object object : list) { if (条件成立) { list.remove(object); } } 然后会发现抛出 java.util.ConcurrentModificationException 异常,这是一个并发异常。那么这个到底是什么情况?首先需要介绍一下 增强for循环 增强for循环 增强for循环是Java1.5后,Collection实现了Iterator接口后出现的。增强for循环的代码如下 for (Object object : list) { // 操作 } 其实增强for循环就是使用Iterator迭代器进行迭代的,增强for循环就变成下面这样: Iterator<Object> iterator = list.iterator(); while (iterator.hasNext()) { iterator.next(); // 操作 } 那么为什么在增强for循环中调用 list.remove(object) 会出事呢?那么咱们看看ArrayList下的 Iterator的实现类: Itr类 Itr子类 Itr子类是Iterator的实现类,属于ArrayList私有的局部内部类。我截取了Itr类的部分代码,如下:

MySQL锁机制(未)

送分小仙女□ 提交于 2020-10-24 22:43:46
一、表级锁和行级锁 表级锁:锁定整张表。 行级锁:锁定某行。 又分为: Record lock(记录锁):锁定某个索引行; gap lock(间隙锁):锁范围,锁行与行之间的间隙(不包括该行); Next-key lock(临键锁):上两者结合,先对该行加上记录锁,再对该索引两边加上间隙锁 二、(行级锁)共享锁和排它锁 共享锁:读锁。事务A为数据a加上该锁后,事务A只能对a进行读,其他事务可以为a加上共享锁(不能加上排它锁)同样只能读。 用法:lock in share mode 排它锁:写锁。事务B为数据b加上该锁后,事务B可以对b进行读写,但其他事务不能加任何锁了,只能等待B释放锁。 用法:for update 三、(表级锁)意向共享锁和意向排它锁 意义在于是行锁和表锁共存。用来说明事务稍后会对表中数据加上哪种锁。 来源: oschina 链接: https://my.oschina.net/u/4527334/blog/4313638

[书籍精读]《你不知道的JavaScript(下卷)》精读笔记分享

China☆狼群 提交于 2020-10-24 20:42:51
写在前面 书籍介绍:JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。本套书直面当前JavaScript开发人员不求甚解的大趋势,深入理解语言内部的机制,全面介绍了JavaScript中常被人误解和忽视的重要知识点。 我的简评:《你不知道的JavaScript》系列分上中下三卷,这里是下卷,主要讲解ES6相关的。该系列书籍本人觉得就上卷写的不错,中卷有些冗余,下卷讲ES6比较粗糙。不过有空翻一翻,还是多少有些收获。 !!文末有pdf书籍、笔记思维导图、随书代码打包下载地址,需要请自取!阅读「书籍精读系列」所有笔记,请移步: 推荐收藏-JavaScript书籍精读笔记系列导航 第1章 ES?现在与未来 与ES5不同,ES6并不仅仅是为这个语言新增一组API。它包括一组新的语法形式,其中的一部分可能是要花些时间才能理解和熟悉的。它还包括各种各样的新的组织形式和操作各种数据类型的新的辅助API 1.2.transpiling transpiling(transformation+compiling,转换+编译)的技术。简单的说,其思路是利用专门的工具把你的ES6代码转换为等价(或近似)的可以在ES5环境下工作的代码 并非所有的ES6新特性都需要使用transpiler

死锁案例之八

老子叫甜甜 提交于 2020-10-24 14:42:05
来源:公众号yangyidba 一 前言 死锁其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发朋友都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。 二 案例分析 2.1 业务场景 业务上的主要逻辑: 首先执行插入数据,如果插入成功,则提交。如果插入的时候报唯一键冲突,则执行更新。如果同时出现三个并发在执行数据初始化动作,sess1 插入成功,sess2 和 sess3插入遇到唯一键冲突,插入失败,则都执行执行更新,于是出现死锁。 2.2 环境准备 MySQL 5.6.24 事务隔离级别为RR create table ty ( id int not null primary key auto_increment , c1 int not null default 0, c2 int not null default 0, c3 int not null default 0, unique key uc1(c1), unique key uc2(c2) ) engine=innodb ; insert into ty(c1,c2,c3) values(1,3,4),(6,6,10),(9,9,14); 2.3 测试用例 为了方便分析死锁日志,三个会话插入的c3的值分别为1 2 3 ,生产上其实是相同的值。 sess1

Python18行代码做出来这样有点浪漫,又有点极客的“内涵”图

与世无争的帅哥 提交于 2020-10-24 13:30:30
今天就来教大家这个套路: 如何使用 Python 来做出来这样有点浪漫,又有点极客的“内涵”图。 当然,能不能靠它得到心仪对象的青睐,就要靠你(命)了。(๑•́₃ •̀๑) 那么要怎么做呢? 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:1097524789 我们先找一张女神的高清图片(尽量分辨率高点的吧,效果会好点)。这里以一张原图是这样的(分辨率是:3840*2160)。 使用我写好的脚本运行后,就生成了这样一张图,请你点击,放大再放大。惊喜? 然后将这张图片发给你的女神,具体话术你自己想咯 好吧,相比女神来说,你可能更在意这是如何实现的。 其实原理很简单,代码也还不到 20 行。 首先,来讲讲原理。 事实上,每一张图片都是由一个一个的像素点所组成的。而每个像素点,都有自己的颜色,其颜色可以用一个数组来表示:(a,b,c),其中每位数的取值范围都是 0-255。 比如(0,0,0)代表黑色,(255,255,255)代表白色。 当像素点足够多的时候,这张照片就是我们所说的高清照片。 而如果当像素点太少,我们的肉眼就能感知到明显的锯齿感。 用 Excel

链表入门

梦想的初衷 提交于 2020-10-24 08:50:55
链表(LinkedList)概述: 链表与数组一样属于一种数据结构。数组是要先确定存放的长度大小,数据的存放是有序可重复的。而链表有初始长度,后续可以根据添加的元素自动扩容,数据的存放是无序可重复。 链表的存储方式: 以节点的方式来存储; 节点的组成: 每个节点由一个date域(存储数据)和一个next域(指向下一个节点)组成 ;链表的分类: 有头节点(单向/双向 链表)、无头节点(循环链表)。 链表创建: public class LinkedListDemo_Review { public static void main(String[] args) { Node node1 = new Node(1,"张三"); Node node2 = new Node(2,"李四"); Node node3 = new Node(3,"王五"); //实例化链表 SingleLinkedList slist = new SingleLinkedList(); //调用添加方法 slist.add(node1); slist.add(node2); slist.add(node3); //调用显示方法 slist.List(); } } //2、创建单向链表 class SingleLinkedList{ //定义头节点 Node HeadNode = new Node(0,""); /

Apache Kylin安装指南+入门案例(附图)

不打扰是莪最后的温柔 提交于 2020-10-24 08:33:40
Apache Kylin安装文档 Kylin安装 Kylin使用案例 1. Kylin安装 使用FTP工具上传apache-kylin-2.5.1-bin-hbase1x.tar.gz压缩包到node01的 opt/software 目录下 解压上一步上传的压缩包 opt/module 下 tar -zxvf apache-kylin-2.5.1-bin-hbase1x.tar.gz -C /opt/module 进入 opt/module 目录,更改apache-kylin-2.5.1-bin-hbase1x目录名字 mv pache-kylin-2.5.1-bin-hbase1x kylin-2.5.1 此时 opt/module 目录结构如下 进入到 kylin-2.5.1 目录,查看kylin的目录结构 进入 conf 目录,将 kylin.properties.template 改成 kylin.properties ,命令: mv kylin.properties.template kylin.properties 编辑 kylin.properties 文件,添加以下内容 # 下面的node01是你的主机名,我将kylin装在了第一个节点上,需要根据你的主机名更改 kylin.server.cluster-servers = node01:7070 kylin

vue基本知识点总结---面试必备

孤人 提交于 2020-10-24 07:56:24
最近入职新的公司,整体来说还是不错的。前一阵子看了很多关于vue的知识点,自己理解着整理一下,再加深一下印象。也希望可以帮助到有需要的同学。理解错误的地方,欢迎指正。 1、对于Vue是一套渐进式框架的理解 答:Vue是渐进的,没有强主张,是个轻量视图。它只做了自己应该做的事,没有做多余的事。 2、vue.js的两个核心是什么? 答:数据驱动和组件化。 3、vue中的模板编译原理 答:模板指的就是template。如果我们传了一个template,我们会把template转换成一个render函数,然后通过render函数返回虚拟DOM,再把虚拟的DOM变成真正的DOM。 4、 响应式数据的原理 答:响应式就是当数据变化的时候,可以让视图也同步更新。核心是Object.defineProperty,vue初始化的时候,Object.defineProperty依次会给data的属性上增加get和set方法,并对依赖进行收集,如果数据发生变化,就会去通知相关的依赖做出对应的更新。 5、vue生命周期钩子函数有哪些? (vue2.0) 答:① 创建期间的生命周期函数: beforeCreate():此时,实例在内存中刚刚创建出来,data和methods没 有被初始化。 created():此时,实例已经在内存中创建完成,data和methods已经被初始化完成。模板还没有编译。