自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux下分析c++程序各个函数运行时间和调用次数

\quad博主当前系统为centos7,如果是其他linux会在安装c++性能分析工具时有所区别,但使用方法完全一样。1、gprof\quad准备工作:假设你写了cpp程序命名为test.cpp,首先将其编译:g++ -o test test.cpp -pg -std=c++11,这里需要指定选项-pg,能产生供gprof剖析用的可执行文件,编译后可执行文件为test。\quad第一步:执行可执行文件./test,会在当前目录下生成gmon.out。注意:此时执行时间会更长一些,主要原因时gprof内

2021-03-31 16:21:22 93

原创 Java面经

1、 类加载机制和类加载器的双亲委派机制\quad虚拟机将描述类的class二进制字节码文件加载到内存,并对数据进行校验、转换解析和初始化,最终成为可以被JVM使用的Java类型,这一整套流程就是类加载机制。细节如下:加载:通过全限定类名获取定义此类的二进制字节流,并将此字节流所代表的静态存储结构转化为方法区运行时的数据结构,最后在内存中生成一个代表这个类的Class对象,这样可以在后面通过该对象获得该类的各种数据,例如获得该类的Methods,Fields等等验证:主要是确保字节码文件中包含的信息

2021-03-06 21:52:22 280 3

原创 Java并发编程(三)——管程:使用悲观锁的思想解决多线程并发中的共享问题

一、共享带来的问题\quad当多个线程访问一个共同的资源时,会发生线程安全问题。假设有共享变量i=0,有两个任务,任务1对该变量进行+1操作,任务2对该变量进行-1操作。假设线程t1对i进行+1操作,但还未来得及保存,此时i=0,时间片就切换给线程2,此时线程2又对i进行-1操作并保存,此时i=-1,t2线程结束,时间片给t1,t1将上次未保存的结果1给i,最终输出i=1。按理说i最后等于0,但是由于多个线程操作共享资源,导致了线程安全问题。例如下面程序,返回结果就可能是:[-10000,10000]中任

2021-03-05 22:22:24 32 1

原创 剑指offer:最小的k个数

\quad输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]\quad这里给出一个三路partition的操作,速度最快,可见测试数据中有很多重复元素。class Solution {public: int partition(vect

2021-03-04 21:49:28 27 1

原创 Java并发编程(二)——线程中的常见方法(join,yield,sleep等)和线程状态

1、start():启动一个新线程,在新的线程中运行run方法。注意:该方法只是让线程进入就绪状态,里面代码不一定立刻执行(CPU时间片还没分给它)。2、join():等待线程运行结束,写上t1.join(),程序运行到这句话时会等待线程t1运行结束后再执行后续操作,该方法提供了线程间运行顺序的控制,假设t2线程需要等待t1线程运行完才能执行,则可以在t2线程前加上t1.join()。static int r = 0;@Testpublic void test1() throws Interrupt

2021-03-03 22:03:10 44 1

原创 HashMap源码剖析

\quad红黑树底层实现是数组+链表+红黑树。大体逻辑是:创建一个长度为2的幂大小的数组table,里面存放Node节点当一个键值对插入散列表时,首先计算当前键值对Key的hash值,根据寻址算法(index=(table.length-1)&hash(key)),这样每一个键Key都能映射到[0,table.length-1]的区间中去当多个键值对的Key对应的hash值相同时,会在其对应的位置形成链表或者红黑树,当相同hash值Key数目达到8个时,会从链表树化为红黑树;反之当其数目减少

2021-03-03 18:59:57 48 1

原创 Java并发编程(一)——进程与线程概念和创建线程的方法

一、进程和线程概念进程概念进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存线程概念线程是进程的基本执行单元,一个进程的所有任务都在线程中执行进程要想执行任务,必须得有线程,进程至少要有一条线程一个进程可以分为多个线程,一个线程就是一个指令流,将指令流的一条条指令交给CPU执行Java中线程是最小调度单位,进程作为资源分配的最小单位二者关系进程间相互独立,线程是进程的组成部分进程的资源供其线程共享,因此线程间通信简单,多个线程可

2021-03-03 11:13:52 19

推特事件检测

事件检测的大牛文章,IEEE影响因子10分以上,可供下载。

2018-10-25

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除