自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 TopK问题——统计大家最爱玩的游戏

问题:统计大家最爱玩的前K种游戏 思路:大体思路是用库里的map来存放数据pair< string,int>可以统计。然后再比较int的值建大堆,堆排序之后取出前K的元素,存放在数组里返回。 代码://核心代码#include<algorithm>#include<map>#include<string>#include<vector>using namespace std;clas

2017-06-29 10:04:13 266

原创 STL下的map和set

一、set set是库里提供的近似平衡二叉搜索树,底层用红黑树实现的,所以是近似平衡,而不是绝对的平衡。#include<set>template < class T, // set::key_type/value_type class Compare = less<T>, // set::key_compare/

2017-06-26 17:54:56 273

原创 CRC校验

一、什么是CRC校验 这里要介绍一下数据链路层的三个基本问题: 1.封装成帧 加上首部和尾部,尾部包含FCS冗余校验码(专门为了检错而添加的帧验证序列)。 说明:CRC和FCS,没有关系,添加的FCS码既可以用CRC校验,也可以用其他方法校验。 2.透明传输 这里的透明传输是指任何东西否可以封装成帧来传输,就是透明传输。 3.差错校验 数据链路层广泛采用CRC校验。 循环冗

2017-06-20 16:15:24 3632

原创 守护进程(daemon)

守护进程也叫精灵进程(daemon):它独立于控制终端,并且周期性的执行某些操作或者等待某个任务,是一种很有用的进程。Linux下的服务器大多是由守护进程实现的,比如说web服务器,Internet服务器等等,守护进程不收终端登录和注销影响,他们是独立的,自成终端。一、查看守护进程: 用命令 ps axj 查看进程,得到TPGID一列为-1,说明没有控制终端,就是所谓的守护进程。 二、守护

2017-06-16 16:30:38 685

原创 线程安全和可重入函数

线程安全问题 1.线程安全问题: 当用线程编写程序时,必须小心地编写那些具有称为线程安全性(thread safety)属性的函数。多线程访问运行时,当一个线程访问数据时采用加锁机制,对数据进行保护,保证了数据不会出现错乱。 2.产生线程不安全的原因: 多线程程序对全局变量或者静态变量进行修改。 3.以下几类函数是线程不安全的: 1)返回指向静态变量指针的函数; 2)函数

2017-06-10 10:55:34 241

原创 Linux 下信号(二)和线程安全

六、信号捕捉 1.内核是如何捕捉信号的: 如果信号的处理动作是用户自定义的,那么这个信号递达的时就会调用这个函数,称为信号捕捉。下图阐述了 捕捉信号 的过程: sigaction()函数可以捕捉信号。#include<signal.h>int sigaction(int signo,const struct sigaction *act,struct sigaction *oact)

2017-06-10 09:35:37 327

原创 Linux下的信号(signal)

一、信号的概念: 要理解信号,我们先来进入一个场景。用户在shell下打开一个前台进程,正在运行。在键盘上按下ctrl+C的组合键,当前前台进程会中断。是因为键盘上输入的信号通过硬件传输给驱动程序,将ctrl+C转化为SIGNAL传给该进程的PCB,修改了PCB里的某些字段,也就是说给进程发送了一个信号。 输入指令:kill -l 可以查看信号 二、信号产生的几个主要条件: 1.硬件异常

2017-06-06 15:11:07 457 1

原创 线程

我们都知道进程有各自的PCB。并且在各自独立的地址空间上运行。那么什么是线程呢?一、线程概念 有时候一个进程中同时需要执行多个控制流程。比如,你开着迅雷下载电影,还能一边下载一边观看。并且能够拖动边框。这时候就是线程排上用场的地方了。 1.很多时间我们会听到,线程是在进程里运行的。这句话其实是说线程是在进程的地址空间内部运行的。所有线程是进程内部的一个执行流,线程只拥有进程的一部分资源。理所当然

2017-06-02 15:55:05 463

原创 死锁问题

一、死锁原理 死锁可以被定义为一组竞争系统资源或互相通信的进程间的“永久”阻塞。当一个进程集合中所有进程都在等待请求资源的分配,而只有在进程集合中的其他阻塞的进程才能触发该事件。这时就称为进程死锁。 如图Ra,Rb占有一个单位资源,当P1占有Rb 同时申请Ra,P2占有Ra,同时申请Rb,两个进程互相都在请求对方占有的唯一资源。发生死锁。 二、死锁条件 若要发生死锁,必定出现四个条件:

2017-06-02 10:46:37 218

linux shell脚本使用

shell

2017-08-26

C语言三子棋实现

C语言 编写三子棋

2016-12-26

空空如也

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

TA关注的人

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