自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

where amazing happens

anything is possible

  • 博客(12)
  • 收藏
  • 关注

原创 LeetCode--add 2 number--结构体和单链表

(一)malloc与结构体vs类和new    首先,因为c语言不是面向对象的,所以c语言中没有new这个操作,在c++中可以用new,但是其实c语言中的结构体加malloc实现的效果和c++中的类和new实现的是一样的。    首先看看c语言结构体的定义:struct ListNode { int val; struct ListNode *next;};//定义结构体变量str...

2018-04-22 20:46:59 532

原创 git基础用法(三)----Permission denied(publickey)

    在某次的课程项目的开发中,想要从华为云的代码仓库上把某个分支的代码pull下来,但是碰到了一些问题,这些问题阻拦了我很久,我也收获了一些经验:(1)could not read from remote repositoryDevcloud: The project you were looking for could not be found.fatal: Could not read ...

2018-04-28 10:47:53 1332

原创 3-Longest Substring Without Repeating Characters--朴素解法

      首先申明,这是一种非常非常非常朴素的方法。。。。。 int lengthOfLongestSubstring(char* s){    int len=strlen(s);    int max=-1;    int tmp=0; if(len==0){ return 0; }    for(int i=0;i<len;i++){ /...

2018-04-24 18:36:28 129

原创 LeetCode--7. Reverse Integer--判断整数溢出

(一)代码int reverse(int x) { if(x == 0) return x; int ret = 0; while(x!=0) { if(ret > 2147483647/10 || ret <-2147483647/10) return 0; ret = ret*10 + ...

2018-04-23 11:10:25 373

原创 互斥问题

上次我们学习到在进程中的线程对于数据是共享的,那在一个线程对数据进行操作的时候,很有可能遇到中断,将那个线程正在处理的数据进行修改,而中断事件之后,原来的线程还是以为用到的数据就是正确的,这就造成了错误。这里给出临界区的定义————对共享内存进行访问的程序片段。        为了避免这种情况,我们需要保证在一个线程对临界区进行操作的时候,其他线程不会进入临界区,这就是互斥问题。        最...

2018-04-19 19:21:39 423

转载 管程

        一 什么是管程?        管程是一个有过程,变量和数据结构等组成的集合。官方给的定义很模糊,不过应该可以这样理解:管程可以看做是一个类,里面定义一些方法,这些方法完成了对临界区的操作,进程要想进入临界区,只要调用管程里面的方法即可。        二管程如何实现互斥?        管程的互斥由编译器来决定,这样程序员就不用操心互斥如何实现,因为管程天然的就实现了互斥    ...

2018-04-19 19:20:24 758

转载 信号量

        信号量的思想是用一个整形来累计唤醒次数,值为0表示没有累计下来的唤醒操作,值大于0说明有几个被积累下来唤醒操作。比如s=5,说明该信号量还可以承受连续5次被唤醒的操作,而s=0的话只能只能唤醒别人而自己不能承受被唤醒的操作。        有两种操作,DOWN和UP对应SLEEP和WAKE。SLEEP就是先判断信号量是否大于0,若是的,则用掉一个被唤醒操作(信号量值减一),若值为0...

2018-04-19 19:19:16 130

翻译 进程线程

表面上看来我们在对计算机操作的时候,我们同时能够听歌,还能打字,屏幕还能显示。。。严格来说在某一特定的时间内,CPU上只有一个进程在执行,在一秒内会有很多的进程进行不断的切换,这样就产生了一种并行的错觉。        为了能够立即进程的概念,打个比方。一个而学家在为他的女儿做一份早餐,他有做早餐的食谱,材料。那么早餐的食谱就是程序————有代码和算法组成。科学家自己就是CPU,科学家去洗菜,炒菜...

2018-04-19 19:17:50 109

原创 虚拟地址和物理地址(2)

    注意: *这里讨论的以Windows下普通模式分页的情况, 也就是2级页表的情况*1.首先把虚拟地址拆分成3个部分(低12位, 中10位, 高10位), 换成2进制如下:  -> 0000 0001 10101111 0101 0101 0001 1000   按照10, 10, 12的位数重新排列后  -> (页目录索引)00 000 00110, (页表项索引)10 111...

2018-04-19 19:16:40 500

原创 虚拟地址和物理地址(1)

    物理内存其实就是RAM。RAM和ROM的区别说一下,因为RAM的读取速度要比ROM快很多,但是也贵很多,所以RAM也被放在离CPU更近的地方。如果我们的程序都存放在ROM里面,每次读取数据和指令都得跑到磁盘上去取,速度就会很慢,也造成了CPU性能的浪费。所以说RAM的大小关乎程序运行的性能。    但是,假设我们运行一个程序,就把这个程序所以资源全部装载到内存,会遇到这些问题:      ...

2018-04-19 19:07:13 223

原创 git基础用法(2)

1. 工作区vs版本库        工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。    2. 撤销修改    情形一:只在修改了工作区里的文件,并没有add到暂存区stage   git che...

2018-04-19 18:54:06 111

原创 git基础用法(1)

一 创建秘钥        大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。        命令:ssh-keygen        这个时候在本机上就会生产了两个文件id_rsa和id_rsa.pub。其中第二个就是公钥,用于授权。如何授权:将id_rsa.pub里的内容拷贝到GitHub上的sshke

2018-04-19 18:11:53 193

空空如也

空空如也

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

TA关注的人

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