源码

Ubuntu18.04编译vpp源码

梦想的初衷 提交于 2019-12-06 18:14:55
编译环境 (1)linux系统:ubuntu-18.04.2-desktop-amd64.iso (2)编译器:gcc-7.4.0/g++-7.4.0 编译步骤 (1)更新apt sudo apt-get update -y sudo apt-get upgrade -y (2)安装git sudo apt install git (3)下载vpp源码 git clone http://gerrit.fd.io/r/vpp 需要等待一段时间。 (4)安装软件 make: sudo apt install make make-guile: sudo apt install make-guile ssh:sudo apt install openssh-server (5)更新代码 git pull (6)编译 make wipe-release # rarely required make install-dep #下载vpp编译所需的依赖 sed -i '/RTE_EAL_IGB_UIO/ {s/n/y/g;}' build/external/packages/dpdk.mk #打开IGB_UIO驱动选项(有些虚拟机使用默认驱动会看不到网卡) make build-release 等待编译完成。界面如下: (7)build a vpp packge make pkg-deb (8

面试字节跳动,被面试官的源码问题问到怀疑人生

风流意气都作罢 提交于 2019-12-06 17:58:47
面试字节跳动,被面试官的源码问题问到怀疑人生 最近,我的一位朋友在找工作,已经拿到了美团、快手等公司的Offer,准备选择其中一家入职了。 后来他又接到了字节跳动的电话,通知他去参加三面。从二面到三面之间隔了挺久的,他以为都没戏了,结果就收到了通知。 由于已经拿到了很多大厂的Offer,他对这次面试还是挺有信心的。但是回来之后,表现的特别沮丧。 一问之下,原来是面试官问的一些问题他回答的不好,他说面试官揪着源码一直问,但是自己并没有深入看太多的源码,所以回答的不是太好。 他给我总结了一下面试官关于源码部分的问题,主要题目如下: 1、你看过那些源码吗? 2、那你能讲讲 HashMap的实现原理吗? 3、HashMap什么时候会进行 rehash? 4、结合源码说说 HashMap在高并发场景中为什么会出现死循环? 5、JDK1.8中对 HashMap做了哪些性能优化? 6、HashMap和 HashTable有何不同? 7、HashMap 和 ConcurrentHashMap 的区别? 8、 ConcurrentHashMap和LinkedHashMap有什么区别? 9、为什么ConcurrentHashMap中的链表转红黑树的阀值是8? 10、还看过其他的源码吗?Spring的源码有了解吗? 11、SpringBoot的源码呢?知道starter是怎么实现的吗? 以上

Android5.1.1源码

牧云@^-^@ 提交于 2019-12-06 17:57:50
Android5.1.1源码 - 虚拟机的创建 @(Android研究)[Android|源码|虚拟机] [TOC] 虚拟机启动时的函数调用路径: app_main.cc - main |-- AndroidRuntime::start |-- AndroidRuntime::startVm |-- JNI_CreateJavaVM 当init进程启动zygote进程时会创建虚拟机,下是zygote代码的main函数,本文从这里开始分析虚拟机如何创建,这个函数在文件"frameworks/base/cmds/app_process/app_main.cpp"中,下面是它的源码: int main(int argc, char* const argv[]) { ...... AppRuntime runtime(argv[0], computeArgBlockSize(argc, argv)); // 处理命令行参数 // 忽略 argv[0] argc--; argv++; // Everything up to '--' or first non '-' arg goes to the vm. // // The first argument after the VM args is the "parent dir", which // is currently unused.

Python wsgiref 模块源码浅析

我与影子孤独终老i 提交于 2019-12-06 16:53:26
原文出处: 人世间(@-人世间-) 欢迎分享原创到 伯乐头条 SimpleHTTPServer模块提供了创建一个http服务的例子。Python web领域里却很少这么做,而是使用了另外一个协议 — WSGI协议。Python的wisiref模块提供了demo_app,来演示如何使用wsgi协议。 1 2 3 4 5 6 7 8 9 10 def demo_app ( environ , start_response ) : from StringIO import StringIO stdout = StringIO ( ) print >> stdout , "Hello world!" print >> stdout h = environ . items ( ) ; h . sort ( ) for k , v in h : print >> stdout , k , '=' , repr ( v ) start_response ( "200 OK" , [ ( 'Content-Type' , 'text/plain' ) ] ) return [ stdout . getvalue ( ) ] demo_app即是一个标准的wsgi app。它接受两个参数,一个包含cgi服务器的环境变量,另外一个参数是一个函数,这个函数也接受两个函数,一个是http状态

ERP进销存系统源码

与世无争的帅哥 提交于 2019-12-06 16:28:27
介绍 ERP进销存管理系统 软件架构 核心框架:SpringBoot 2.0.0 持久层框架:Mybatis 1.3.2 日志管理:Log4j 2.10.0 JS框架:Jquery 1.8.0 UI框架: EasyUI 1.3.5 模板框架: AdminLTE 2.4.0 项目管理框架: Maven 3.2.3 开发环境 建议开发者使用以下环境,可以避免版本带来的问题 IDE: IntelliJ IDEA 2017+ DB: Mysql5.7.4 JDK: JDK1.8 Maven: Maven3.2.3+ 运行环境 数据库服务器:Mysql5.7.4 JAVA平台: JRE1.8 操作系统:Windows、Linux等 安装教程 1.下载项目,将源码以Maven的方式导入Eclipse或IDEA中,并关联好JDK。 项目结构: 2.将数据库文件jsh_erp.sql导入MySQL中 可以提前先在MySQL中创建一个名为jsh_erp的数据库,然后再导入。 3.打开项目源目录resources中的配置文件application.properties,修改数据库连接、账号、密码。 4.运行com.jsh.erp包中的ErpApplication类,启动项目。(使用SpringBoot的启动方式) 5.浏览器地址访问登录页面http://localhost:8080/login

java线程池源码的理解

亡梦爱人 提交于 2019-12-06 15:27:13
概念 所谓线程池,就是有一个池子,里面存放着已经创建好的线程,当有任务提交到线程池执行时,池子中的某个线程会主动执行该任务. 主要流程 execute() –> addWorker() –>runWorker() -> getTask() 重要参数及变量 控制状态的变量 ctl: ctl是一个AtomicInteger原子操作类,能够保证线程安全。 ctl变量定义如下: private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); private static int ctlOf(int rs, int wc) { return rs | wc; } 详细讲解如下: The main pool control state, ctl, is an atomic integer packing two conceptual fields workerCount, indicating the effective number of threads runState, indicating whether running, shutting down etc 大概意思是:通过对ctl的运算,能够得到两个重要的变量,workerCount(worker线程数量)和runState(线程池运行状态)。

django_settings源码解析

梦想的初衷 提交于 2019-12-06 15:11:05
目录 配置文件插拔式设计: 简单版: 复杂版 importlib 与`__import__的区别: 配置文件插拔式设计: 项目配置文件插拔式设计: 基于django settings源码实现自己项目配置文件插拔式设计 基于django 中间件的思想 实现功能的配置使用: --在setting文件可控制多功能的执行!!! 简单版: #简单版: #notify.py def send_email(content): print('邮箱通知:%s'%content) def send_msg(content): print('短信通知:%s'%content) def send_wechat(content): print('微信通知:%s'%content) #start.py from XX.notify import * def send_all(content): send_msg(content) send_email(content) send_wechat(content) if __name__ == '__main__': send_all('再坚持一天就周末了') 复杂版 #复杂版: #start.py (执行函数) from notify import * if __name__ == '__main__': send_all('好嗨哦') #settings.py

Android多线程——View.post()源码分析

99封情书 提交于 2019-12-06 14:37:56
提起View.post()或者View.postDelay(),相信不少童鞋一点都不陌生,它用得最多的有两个功能 1)在子线程中更新UI; 2)获取View的宽高等属性值。 一、在子线程中更新UI 一般我们通过使用View.post()实现在子线程中更新UI的示例大致如下: 1 private Button mStartBtn; 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.activity_intent_service); 6 mStartBtn = findViewById(R.id.start); 7 new Thread(new Runnable() { 8 @Override 9 public void run() { 10 mStartBtn.post(new Runnable() { 11 @Override 12 public void run() { 13 //处理一些耗时操作 14 mStartBtn.setText("end"); 15 } 16 }); 17 } 18 }).start(); 19 } 第7行开启了一个线程

分页查询表格逻辑 及源码

别说谁变了你拦得住时间么 提交于 2019-12-06 14:14:50
前台写数据展现时 有时需要用到分页 以下是自己写的分页源码 HTML页面的 格式 给DIv加一个ID 在给分页写个框架 <div class="row" id="imglist"> </div> <%--分页控件--%> <div class="row"> <div class="col-md-12 text-right"> <nav aria-label="Page navigation"> <ul class="pagination pagination-lg" id="fenye" > </ul> </nav> </div> </div> 然后添加JQ引用 在写一个Jq 编写 写入正则方法 加入引用 //获取Url参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } 然后取值并使用Ajax方法传入后台 <%--展现图片列表及分页--%> <script type="text/javascript"> //记录每页有多少条数据 默认4条 var

【新手向】如何学习Java集合

北城余情 提交于 2019-12-06 14:13:46
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star : https://github.com/ZhongFuCheng3y/3y 如果认识我的同学可能就知道,我已经写过很多系列级的文章了,但是没有一篇是写给 刚入门 的同学来看的,大多数都是依照我个人的学习进度来编写。 虽然可以按照我的文章顺序去一篇一篇阅读,但是如果是新入门的同学可能更希望得到的是一个 学习指南 (路线指引)。于是我就有了这篇文章,希望对刚入门的同学有所帮助。 如果这篇文章的反响不错,会持续更新其他的专题。觉得我写得不错,希望可以给我一个 赞 ! Java集合学习指南 本文会提出很多可能新手会想到的问题,但不会一一解答,只会往大方向去说明白。本文的内容偏向于 指南 ,而非技术教程讲解。 如果想要得到具体的答案,可以翻阅我曾经写过的资料: https://github.com/ZhongFuCheng3y/3y ,或者加入 人才交流群 跟众多开发者讨论,前面的 Github 链接有我的联系方式。 学习一项技术之前,必须知道为什么要学它! Q: 我们得知道为什么要学习Java集合,学到Java集合的时候已经学过了数组了,为什么我不用数组反而用Java集合。数组和Java集合有什么区别? A: Java是一门面向对象的语言,就免不了处理对象,为了方便操作多个对象,那么我们就得把这多个对象存储起来