CAS

成立即获亿元级融资,万亿生物制造行业出现合成生物学新头部玩家

ⅰ亾dé卋堺 提交于 2020-10-01 16:20:43
  “未来 10-20 年,4 万亿美元的经济价值将由合成生物主导。”   2020 年 6 月,麦肯锡在《生物革命:创新将改变经济、社会和我们的生活》报告中,用这句话总结合成生物产业的未来价值。   三个月后的 9 月初,一家合成生物技术平台初创公司,恩和生物 Bota Biosciences(以下简称“Bota Bio”),宣布完成 1500 万美元 A 轮融资。本轮融资由经纬中国领投,夏尔巴投资、BV 百度风投等机构跟投。   Bota Bio 成立于 2019 年,首席执行官是哈佛 - 麻省理工学院医学工程和生物物理博士 Cheryl Cui,她曾入选 2018 年美国福布斯医疗健康 “30 under 30” 榜单;联合创始人卢冠达(Timothy K. Lu)是麻省理工学院电子工程与生物工程副教授,他参与创办的合成生物公司 Synlogic 已于纳斯达克上市;首席技术官 Chia-Hong Tsai 博士来自于全球顶尖生物合成公司 Amyris,曾实现多个生物基产品的产业化。   除此之外,Bota Bio 的主要团队成员均拥有工业生物技术研发和产业化经验,核心技术团队完整覆盖生物计算、菌株工程和发酵工艺等各个技术模块。技术高管来自于 Amyris,生物酶工程巨头 Codexis、Ginkgo Bioworks、Intrexon、Joyn Bio 等。此前

记一次订单号事故

安稳与你 提交于 2020-10-01 10:32:49
记一次订单号事故 去年年底的时候,我们线上出了一次事故,这个事故的表象是这样的: 系统出现了两个一模一样的订单号,订单的内容却不是不一样的,而且系统在按照 订单号查询的时候一直抛错,也没法正常回调,而且事情发生的不止一次,所以 这次系统升级一定要解决掉。 经手的同事之前也改过几次,不过效果始终不好:总会出现订单号重复的问题, 所以趁着这次问题我好好的理了一下我同事写的代码。 这里简要展示下当时的代码: /** * OD单号生成 * 订单号生成规则:OD + yyMMddHHmmssSSS + 5位数(商户ID3位+随机数2位) 22位 */ public static String getYYMMDDHHNumber(String merchId){ StringBuffer orderNo = new StringBuffer(new SimpleDateFormat("yyMMddHHmmssSSS").format(new Date())); if(StringUtils.isNotBlank(merchId)){ if(merchId.length()>3){ orderNo.append(merchId.substring(0,3)); }else { orderNo.append(merchId); } } int orderLength = orderNo

无锁队列的实现

☆樱花仙子☆ 提交于 2020-10-01 08:21:51
注:本文于2019年11月4日更新 (转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途) 关于无锁队列的实现,网上有很多文章,虽然本文可能和那些文章有所重复,但是我还是想以我自己的方式把这些文章中的重要的知识点串起来和大家讲一讲这个技术。下面开始正文。 目录 关于CAS等原子操作 无锁队列的链表实现 CAS的ABA问题 解决ABA的问题 用数组实现无锁队列 小结 关于CAS等原子操作 在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap, 现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。 有了这个原子操作,我们就可以用其来实现各种无锁(lock free)的数据结构。 这个操作用C语言来描述就是下面这个样子:(代码来自Wikipedia的Compare And Swap词条)意思就是说,看一看内存 *reg 里的值是不是 oldval ,如果是的话,则对其赋值 newval 。 int compare_and_swap (int* reg, int oldval, int newval) { int old_reg_val = *reg; if (old_reg_val == oldval) { *reg = newval;

记一次订单号事故

天大地大妈咪最大 提交于 2020-10-01 02:35:14
记一次订单号事故 去年年底的时候,我们线上出了一次事故,这个事故的表象是这样的: 系统出现了两个一模一样的订单号,订单的内容却不是不一样的,而且系统在按照 订单号查询的时候一直抛错,也没法正常回调,而且事情发生的不止一次,所以 这次系统升级一定要解决掉。 经手的同事之前也改过几次,不过效果始终不好:总会出现订单号重复的问题, 所以趁着这次问题我好好的理了一下我同事写的代码。 这里简要展示下当时的代码: /** * OD单号生成 * 订单号生成规则:OD + yyMMddHHmmssSSS + 5位数(商户ID3位+随机数2位) 22位 */ public static String getYYMMDDHHNumber(String merchId){ StringBuffer orderNo = new StringBuffer(new SimpleDateFormat("yyMMddHHmmssSSS").format(new Date())); if(StringUtils.isNotBlank(merchId)){ if(merchId.length()>3){ orderNo.append(merchId.substring(0,3)); }else { orderNo.append(merchId); } } int orderLength = orderNo

滴滴CTO五轮面试真是太刺激了,Java高级工程师一二三四五面面经(已拿到offer)

拟墨画扇 提交于 2020-09-30 18:12:32
滴滴CTO五轮面试真是太刺激了,之前看到好多面经难度极大,感觉运气还行,面试难度虽然挺大,但面试官人还都不错。而且面试完马上出结果,非常刺激! 本文分享给需要面试刷题的朋友,也祝愿大家顺利拿到自己想要的offer,这份资料主要包含了Java基础,数据结构,jvm,多线程等等,由于篇幅有限,以下只展示小部分面试题,有需要完整版的朋友可以点一点链接跳转领取:链接: 点击即可!!! 暗号:CSDN 9月9日下午1:00 一面 自我介绍+介绍项目 项目中难点及解决办法 Java线程的状态及转换 Java创建线程的方式 创建线程池的方式有哪些 JUC包下的类,能说多少说多少 ReentranLock与sychronized的区别 volitile的内存语义,底层如何实现 解释一下happens-before,有哪些规则 CurrentHashMap源码 MySQL的索引及区别 算法题:顺时针打印矩阵 9月10日下午1:00二面,深挖项目为主(45min) 介绍项目,项目中的难点(15min) MySQL是如何优化的,数据量有多少 倒排索引与正排索引的区别 ElasticSearch的原理(倒排索引+TF/IDF) Zookeeper用过吗,介绍一下 Zookeeper一般用在什么场景 除了ZAB协议,在介绍几个分布式一致性协议(Paxos、Raft) 线程池的几种拒绝策略及其应用场景

ReentrantLock、AQS 源码分析

大城市里の小女人 提交于 2020-09-30 17:00:31
如果 把ReentrantLock比做一个人的话,那么 AQS 就是他的灵魂。离开 AQS 谈论锁都是耍流氓 ReentrantLock and AQS 一.AQS使用方式和其中的设计模式 二.重要参数 三.了解其中的方法 1.模板方法:    独占式获取    共享式获取    独占式释放锁    共享式释放锁 2.需要子类覆盖的流程方法 3.同步状态state: 三、源码 1.lock 实现类源码:ReentrantLock 为例 AbstractQueuedSynchronizer 源码 如下为 addWaiter 方法 这一支的操作。 如下为acquireQueued 的操作 总结 2.unlock 四、ReentrantLock源码分析 1.构造器 2. 非公平锁获取锁 3.公平锁获取锁 4.释放锁 一.AQS使用方式和其中的设计模式 继承,模板方法设计模式 二.重要参数 private volatile int state; 记录当前锁是否有线程拿到锁、一个线程进入锁的重入数。如果是0,代表没有任何线程进入锁。如果是 n,n>0 那么代表有个线程重入了 n 次 AbstractOwnableSynchronizer: private transient Thread exclusiveOwnerThread:当前拿锁的线程 volatile int waitStatus

Codeforces Round #671 (Div. 2)A-E题解

时间秒杀一切 提交于 2020-09-30 15:12:52
Codeforces Round #671 (Div. 2)A-E题解 //写于rating值1987/2184 //这场的A-D是真的水… 比赛链接:https://codeforces.ml/contest A题 水题 题意为给定一个长度为n的数字,两个人交替对这个数字上的某一位进行标记。先手的人只能标记奇数位上的数,后手的人只能标记偶数位上的数。当只剩下一个位置上的数没被标记时,如果这个数字是奇数那么先手胜利,如果这个数是偶数,那么后手胜利。 注意到这道题里面,先手后手两个人能标记的数字部分是完全互不相关的。最后一个剩下的数字到底是奇数位置还是偶数位置上的数,只由n的奇偶性决定。如果最后剩下的是奇数位上的数字,先手的人肯定希望自己能胜利,因此如果奇数位上的数字如果有任意一个是奇数的话,他只要把这个数留到最后就能保证自己胜利了。 最后剩下的是偶数位上的数字的时候同理。 # include <bits/stdc++.h> # define ll long long # define llINF 9223372036854775807 # define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); using namespace std ; int32_t main ( ) { IOS ; int t ; cin >>

多线程之深入学习并发编程

别来无恙 提交于 2020-09-30 06:53:36
谈到多线程我们就应该知道,在多线程的并发情况下,安全问题和性能问题是我们额外关注的焦点,需要我们不断的选型,技术没有好与不好,只有适不适合,同样在各大公司面试题库中也是必问的,即将走向工作岗位的技术人员应该好好复习和深入理解这方面知识。 1.多线程的基础 1.何为线程安全? 线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。 2.创建线程的四种常见方式 2.1 重写 Thread 类的 run() 方法。 2.2 实现 Runnable 接口,重写 run() 方法。 2.3 实现 Callable 接口,使用 FutureTask 类创建线程 2.4 使用线程池创建、启动线程 3.Runnable接口和Callable接口的区别。 相同点: 1.都是接口,都能够实现多线程编程,都需要Thread.start()来启动线程。 不同点: 1.Callable接口支持返回执行结果,此时需要调用FutureTask.get()方法实 现,此方法会阻塞主线程直到获取‘将来’结果;当不调用此方法时,主线程不会阻塞! 4.wait方法和sleep方法的区别 首先wait方法是Object类中的,而sleep是Thread中的方法,其次调用wait方法会释放掉锁

关于IAST灰盒安全测试技术,看悬镜宁戈这篇就够了~

强颜欢笑 提交于 2020-09-30 06:48:42
点击蓝字 关注我们 悬镜安全作为国内DevSecOps理念的最佳实践者之一,在IAST灰盒安全测试技术方面有着丰富的落地实践经验。2020年9月5日(上周六),悬镜安全技术负责人宁戈受行业媒体安在邀约,参与“安在新媒体网络安全创新沙龙”,并在活动现场做《新一代灰盒安全测试技术与实践》主题演讲,向业界同行与媒体嘉宾详细介绍了DevSecOps和IAST技术核心点,以及在悬镜安全的落地实践案例,获得了现场一致好评! 图|演讲人-悬镜安全技术负责人宁戈 开发安全面临的两个问题 (1) 系统一定有未被发现的安全漏洞 。 程序员每写 1000行代码,就会出现1个逻辑性缺陷。每个逻辑性的缺陷,或者若干个逻辑性缺陷,最终导致一个漏洞;因此“缺陷是天生的,漏洞是必然的”。 (2) 现代应用都是组装的而非纯自研 。 78%-90%的现代应用融入了开源组件,平均每个应用包含147个开源组件,且67%的应用采用了带有已知漏洞的开源组件,软件供应链安全威胁迫在眉睫。 现代应用安全的风险面,主要来自第三方开源组件缺陷(如CNNVD/CNVD/CVD漏洞)和自研代码,Web通用漏洞(SQL注入、命令执行、XXE、XSS等OWASP TOP10)和业务逻辑漏洞(水平/垂直越权、短信轰炸、批量注册、验证码绕过等 )。 因此, 针对现代应用全面风险审查应考虑从第三方开源组件、自研代码通用漏洞

快人一步!阿里爆款Java性能调优手册,源码+笔记+项目实战全都有!

为君一笑 提交于 2020-09-26 00:34:58
在Java程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 性能调优的步骤主要有:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优,验证是否达到调优目标。 现代大规模关键性系统中的Java性能调优,是一项富有挑战的任务。你需要关注各种问题,包括算法结构、内存分配模式以及磁盘和文件I0的使用方式。性能调优最困难的是找出问题,即便是经验丰富的人也会被他们的直觉所误导。性能杀手总是隐藏在最意想不到的地方。 要对Java程序做性能优化,不仅要对应用的代码实现有足够的了解,还需要对更底层的OS、JVM有较深的了解。本文结合了Java程序员也需要掌握的OS. JVM层面的很多知识:更吸引人的是,结合自己的经验,为大家总结了一些性能优化的模式,例如CPU利用率高的时候需要怎么进行优化,这些模式让人受益匪浅,相信读过后能对大家日常工作中做性能优化提供不小的帮助。 于是乎你的小编(雷锋)在这个星期也没闲着整理了这份关于Java性能实战源码+笔记+项目实战的资料。 本资料是Java 应用性能调优的圣经,内容通俗易懂,介绍了大量的监控和测量工具,涉及各种硬件架构和操作系统。涵盖了如何构建实验、解释结果以及如何采取行动等技巧。如果你是一个细节控,那么这本书正适合你。 以上就是资料包含的内容,下面小编会展示目录和详细内容截图,有需要