- 博客(747)
- 资源 (15)
- 收藏
- 关注
转载 线程之间共享哪些资源
同一进程间的线程究竟共享哪些资源呢,而又各自独享哪些资源呢?共享的资源有:一个。堆由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此新出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)湾 全局变量它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的C。静态变量虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量...
2019-04-01 18:46:44 8400 1
转载 进程和线程、协程的区别
现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来。python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程。本文主要介绍进程、线程和协程三者之间的区别。一、概念 1、进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通...
2019-04-01 17:51:45 646
转载 Kubeflow 入门——为 Kubernetes 打造的组件化、可移植、可扩展的机器学习堆栈
Kubeflow 入门——为 Kubernetes 打造的组件化、可移植、可扩展的机器学习堆栈【编者的话】本文来自 Kubeflow 项目的产品经理 David Aronchick 和首席工程师 Jeremy Lewi,主要讲了他们新的开源项目——Kubeflow 的一些入门知识,Kubeflow 致力于使 Kubernetes 上的机器学习堆栈变得简单,快速及可扩展。Kubernetes ...
2018-12-28 11:07:27 1308
转载 高并发系统之降级特技
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。之前已经有一些文章介绍过缓存和限流了。本文将详细聊聊降级。当访问量剧增、服务出现问题(如响应时间慢或不响应)或非核心服务影响到核心流程的性能时,仍然需要保证服务还是可用的,即使是有损服务。系统可以根据一些关键数据进行自动降级,也可以配置开关实现人工降级。本文将介绍一些笔者在实际工作中遇到的或见到过的一些降级方案供大家参考。
2018-01-27 14:51:03 692
转载 Class.forName()用法详解
主要功能Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段下面,通过解答以下三个问题的来详细讲解下Class.forName()的用法。一.什么时候用Class.forName()?先来个热身,给你一个字符串变量,它代表一个类的包名和类名,你怎
2018-01-25 14:26:26 678
转载 JSON解析
1.JSON解析 (1).解析Object之一:1{"url":"http://www.cnblogs.com/qianxudetianxia"} 解析方法:12JSONObject demoJson = new JSONO
2018-01-03 18:33:39 1325
转载 java中classpath解释
对于classpath作用的解释在《Thinking in Java》中有如下解释: Java 解释器的工作程序如下: 首先,它找到环境变量CLASSPATH(将Java 或者具有Java 解释能力的工具——如浏览器——安装到机器中时,通过操作系统进行设定)。CLASSPATH 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。从那个根开始,解
2017-12-25 20:34:27 862
转载 对Java Serializable(序列化)的理解和总结
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化 a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候
2017-12-07 17:32:46 506
转载 Map集合中value()、keySet()和entrySet()以及性能的分析
在Map集合中values():方法是获取集合中的所有的值----没有键,没有对应关系,KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key entrySet():Set> entrySet() //返回此映射中包含的映射关系的
2017-12-05 10:18:12 601
转载 keyset与entryset
1、基本概述SetMap.EntryK,V>> entrySet() 返回此映射中包含的映射关系的 set 视图。SetK> keySet() 返回此映射中包含的键的 set 视图。2、效率分析对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entry
2017-12-05 10:15:03 439
转载 C++标准转换运算符const_cast
前面讲了C++继承并扩展C语言的传统类型转换方式,最后留下了一些关于指针和引用上的转换问题,没有做详细地讲述。C++相比于C是一门面向对象的语言,面向对象最大的特点之一就是具有“多态性(Polymorphism)”。要想很好的使用多态性,就免不了要使用指针和引用,也免不了会碰到转换的问题,所以在这一篇,就把导师讲的以及在网上反复查阅了解的知识总结一下。C++提供了四个转换运算符:
2017-11-21 20:57:03 385
转载 nohup /dev/null 2>&1 含义详解
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。该命令的一般形式为:nohup command &ls xxx 1>out.txt 2>&1nohup /mnt/Nand3/H2000G >/dev/nul
2017-11-21 19:16:39 1649
转载 C++关键字this
this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子: void Date::setMonth( int mn ) { month = mn; // 这三句是等价的 this->month = mn; (*this).month = mn; } 1. this只能在成员函数中使用。全局函数,静态函数都
2017-11-17 14:53:49 389
转载 sql语句中as的用法和作用
sql语句中as的用法和作用最近做项目中,偶然发现在SQL语句中出现了as这个词,一直以来没怎么关注是什么意思,毕竟影响不大,今天有空,就在网上查了一些资料,大概有了一些的了解我们的Sql语句在很多数据库中都是通用的,比如像Mysql数据库 Access数据库. Oracle数据库. Sqlite数据库 .甚至在我们的Excel中也可以使用Sql语句.在我的数据库中有us
2017-11-06 12:08:56 13540 1
转载 C++中endl的本质是什么
1. endl的本质自从在C语言的教科书中利用Hello world程序作为学习的起点之后,很多程序设计语言的教科书都沿用了这个做法。我们写过的第一个C++程序可能就是这样的。#include using namespace std;int main(){ cout"Hello world"<<endl;}123456学习过C语言的程序猿自然会把输出语句与C语言中的输
2017-11-05 21:16:14 49880 10
转载 C++中endl、“\n”和‘\n’的区别
\n”“\n” 表示一个字符串,只有一个数据是回车符‘\n’‘\n’ 表示一个字符,两者在输出上是一样的!endl在c++中,终端输出换行时,用cout 与 “\n”都可以,这是初级的认识。但二者有小小的区别,用endl时会刷新缓冲区,使得栈中的东西刷新一次,但用“\n”不会刷新,它只会换行,盏内数据没有变化。但一般情况,二者的这点区别是很小的,在大的程序中
2017-11-05 21:05:12 4622
转载 linux 后台运行命令 nohup命令
普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止。要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦;另一种方法是仍然用普通方法编程,然后用nohup命令启动程序: nohup & 则控制台logout后,进程仍然继续运行,起到守护进程的作用(虽然它不是严格意义上的守护进程)。使用nohup命令后,原程序的
2017-11-05 20:42:49 2147
转载 标准输入/输出和重定向
1. 标准输入与输出我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和 标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息 送到标准错误文件中。我们以cat命令为例,cat命令的功
2017-11-05 19:55:40 6560
转载 Xargs用法详解
简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:这个命令是错误的find /sbin -perm +700 |ls -l这样才是正确的find /sbin -perm +700 |xargs ls -l xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 s
2017-11-05 19:46:37 343
转载 文件IO---标准输入、标准输出和标准错误
文件IO---标准输入、标准输出和标准错误(1) 每个进程都会默认打开3个文件描述符,即0、1、2。其中0代表标准输入流、1代表标准输出流、2代表标准错误流。通常标准输入流对应着键盘的设备文件、标准输出流和错误流对应着显示器的设备文件。在编程中通常使用宏STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO分别来代表0,1,2。 要注意一点:
2017-11-05 12:46:17 9946 1
转载 搜索引擎正排和倒排
正排索引(正向索引)正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。正排表结构如图1所示,这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对应的索引信息
2017-10-31 12:02:55 770
转载 STL中序列容器的选择
在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错,
2017-09-27 10:55:26 307
转载 多线程还是多进程的选择及区别
鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有
2017-09-25 16:57:13 1026
转载 C++和双重检查锁定模式(DCLP)的风险
多线程其实就是指两个任务一前一后或者同时发生。1 简介当你在网上搜索设计模式的相关资料时,你一定会找到最常被提及的一个模式:单例模式(Singleton)。然而,当你尝试在项目中使用单例模式时,一定会遇到一个很重要的限制:若使用传统的实现方法(我们会在下文解释如何实现),单例模式是非线程安全的。程序员们为了解决这一问题付出了很多努力,其中最流行的一种解决方法是使用一个新的设
2017-09-25 16:55:44 438
转载 存储系统的那些事
存储系统从其与生俱来的使命来说,就难以摆脱复杂系统的魔咒。无论是从单机时代的文件系统,还是后来C/S或B/S结构下数据库这样的存储中间件兴起,还是如今炙手可热的云存储服务来说,存储都很复杂,而且是越来越复杂。存储为什么会复杂,要从什么是存储谈起。存储这个词非常平凡,存储 + 计算(操作)就构成了一个朴素的计算机模型。简单来说,存储就是负责维持计算系统的状态的单元。从维持状态的角度,我们会有最朴
2017-08-31 21:22:45 287
转载 两个有序数组的中位数
[LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time
2017-08-26 13:55:20 417
转载 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
题目的意思很简单,比如说有数组[1,6,9,2,1,5,15,20],那么满足上述条件的元素为1,15,20。分析1.暴力的方法就是从左到右进行遍历,到达某个数字后,在从0开始遍历到当前下标,找出最大的,再从当前下标遍历到尾,找出最小的,然后根据题意比较一下,这个算法为O(n^2)。比较简单的算法就是利用一下额外的空间,保存一下,每个元素右侧的最小值,或者左侧的最大值,
2017-08-25 12:07:27 2374
转载 判断一棵树是否是二叉查找树
转载:http://blog.csdn.net/guoyuguang0/article/details/51018249判断一棵树是否是二叉查找树 利用该节点对应的最大值和最小值来判断该节点是否符合二叉查找树的性质。public boolean isValidBST(TreeNode root) { return validateRange(root, Lo
2017-08-24 21:34:30 483
转载 循环有序数组中的二分查找 Search in a rotated sorted array
版权声明: GNU General Public License. https://github.com/lucky521二分查找是必须要掌握的技能,适用于有序的、顺序的存储结构。1、可以用它来查找某一个数2、可以用于查找某一个范围。如《二分查找有序数组中某个数的所在范围 Search for a Range》。3、可以用它来查找两个有序数组的中位数。
2017-08-24 18:17:25 859
转载 QUIC和TCP--为什么多线程下载比单线程快
作者:henrystark henrystark@126.comBlog: http://henrystark.blog.chinaunix.net/日期:20140626本文遵循CC协议:署名-非商业性使用-禁止演绎 2.5(https://creativecommons.org/licenses/by-nc-nd/2.5/cn/)。可以自由拷贝,转载。但转载请保持文档的完整性,注明
2017-08-23 22:26:23 3367
原创 linux 工具篇
记录,学习使用http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/index.html
2017-08-21 15:23:39 328
转载 pmap学习:系统测试中怎么确定内存泄露(memory leak)
性能测试的一项重要工作就是检查有没有内存泄露。Linux下通过top/free/pmap/ps,会提供许多关于内存分配的信息,如top里面的VIRT,RSS,SWAP,VSZ,RES,SHR等等,到底哪些参数能够用来检测memory leak呢?虽然baidu,google很方便,但是一直没有找到一个令人信服的答案。这些天一直在研究,结合我在以往实际工作中的一些经验,在此做一个总结:
2017-08-21 14:29:24 6247 1
转载 内存泄漏的问题如何解决(linux)
内存泄漏的问题,在百度是遇到最多的,阿里相对少点。与内存泄漏斗争了很久,我总结下常用的一些有效测试方法吧。 1、valgrind,这是非常好用的工具,虽然参数很多,输出结果较多,但是只要认真看下,就很容易发现问题,报告是很详细的,不要被吓倒。valgrind检测的内存泄漏是非常准的,可以精确定位到代码行甚至是变量。valgrind基于valginrd core框架,这是个非常有强大的框架
2017-08-21 12:00:20 841
转载 一个 Linux 上分析死锁的简单方法
简介 死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就
2017-08-21 11:47:39 1778
转载 如何使用strace+pstack利器分析程序性能
引言有时我们需要对程序进行优化、减少程序响应时间。除了一段段地对代码进行时间复杂度分析,我们还有更便捷的方法吗?若能直接找到影响程序运行时间的函数调用,再有针对地对相关函数进行代码分析和优化,那相比漫无目的地看代码,效率就高多了。将strace和pstack工具结合起来使用,就可以达到以上目的。strace跟踪程序使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用
2017-08-21 10:57:51 307
转载 一种定位内存泄露的方法(Linux)
本文是《一种定位内存泄露的方法(Solaris)》对应的Linux版本,调试器使用gdb。主要介绍实例部分。其他请见《一种定位内存泄露的方法(Solaris)》。实例:模拟new失败的程序:#include class ABC{public: virtual ~ABC(){} int i;
2017-08-21 10:45:41 516
转载 Linux进程内存分析和内存泄漏定位
在Linux产品开发过程中,通常需要注意系统内存使用量,和评估单一进程的内存使用情况,便于我们选取合适的机器配置,来部署我们的产品。linux本身提供了一些工具方便我们达成这些需求,查看进程实时资源top工具,更详细的进程内存堆栈情况,pmap工具,Linux进程运行时状态信息也会保存在proc目录下,相应进程ID目录下,这里有很丰富的信息,先讨论进程内存。 借助网上大
2017-08-21 10:35:10 6246
转载 Linux下 /proc/maps 文件分析
/proc//maps查看进程的虚拟地址空间是如何使用的。该文件有6列,分别为:地址:库在进程里地址范围权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有;偏移量:库在进程里地址范围设备:映像文件的主设备号和次设备号;节点:映像文件的节点号;路径: 映像文件的路径每项都与一个vm_area_struct结构成员对应,范例:应用程序的正文段(权
2017-08-21 10:24:38 3384
转载 linux 内存查看方法:meminfo\maps\smaps\status 文件解析
Linux 下面查看内存有多种渠道,比如通过命令 ps ,top,free 等,比如通过/proc系统,一般需要比较详细和精确地知道整机内存/某个进程内存的使用情况,最好通过/proc 系统,下面介绍/proc系统下内存相关的几个文件 单个进程的内存查看 cat /proc/[pid] 下面有几个文件: maps , smaps, status maps 文件
2017-08-21 09:54:11 2429
转载 Linux下定位内存泄漏-查看内存空间
查看程序内存空间两种方法一、查看/proc/{pid}/maps文件#cat /proc/568/maps00008000-0036a000 r-xp 00000000 00:0e 236 /home/hik/hicore00372000-003a5000 rw-p 00362000 00:0e 236 /home/hik/hicore
2017-08-21 09:46:03 5241
Berkeley DB 资料
2010-09-21
linux c函数速查手册
2009-10-13
lcd ampire128x64 的使用 proteus
2009-05-17
autocad做的小户型平面图
2009-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人