自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程爱好者的博客

一个编程爱好者的学习过程

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

原创 最小栈

使用2个栈实现最小栈class Solution { private: stack<int> s1; stack<int> s2;public: void push(int value) { s1.push(value); if(s2.empty()==1 || value <= s2.top()...

2019-04-30 20:57:20 394

原创 Linux复习: semaphore.h信号量和生产者消费者

点击查看demo代码demo运行结果如图借用网上的一段话在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这种生产消费能力不均衡的问题,所以便有了生产者和消费者模式。可以对数...

2019-04-21 23:53:58 5817

原创 Linux复习:pthread的cond和mutex

互斥锁mutex这一篇文章描述pthread的创建和分离,等待线程的条件变量何为同步?同步 概念主要当某个线程可以修改变量,而其他线程也可以读取或修改这个变量的时候,就需要对这些线程进行同步,以确保它们在访问变量的存储内容时不会访问到无效的数值。在Linux中,可以理解为一个线程需要等待另外一个线程完成某个条件变量,才能继续自己,否则挂起自己。顺便复习挂起和阻塞的区别当多个控制线程...

2019-04-14 23:27:00 1237

原创 Linux复习:XSI IPC之消息队列总结

在Linux中,IPC消息队列是一个双向通信的全内存设计,即内核保证了读写顺序和数据同步,并且是性能比较优越的先进先出数据结构。消息队列应用于很多场景:比如异步任务处理,抢占式的数据分发,以及顺序缓存区等。消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接受者接受的数据块可以有不同的类型值,我们可以通过发送消息来避免命名管道的同步和阻...

2019-04-14 22:41:27 357

转载 STL: unordered_map 自定义键值类型的使用

当试图使用自定义类型作为 unordered_map 的键值时,则必须为自定义类型定义 Hash 函数与相等的判断条件。我们先定义自定义类型作键值,代码如下:struct KEY{ int first; int second; int third; KEY(int f, int s, int t) : first(f), second(s), third(...

2019-04-12 20:34:24 1423

原创 Linux复习:pthread的create和join,detach

本文demo运行在阿里云的服务器,Centos系统首先复习进程和线程的资源关系。进程内典型全局资源如下:1)代码区:这意味着当前进程空间内所有的可见的函数代码,对于每个线程来说,也是可见的2)静态存储区:全局变量,静态空间3)动态存储区:堆空间线程内典型的局部资源:1)本地栈空间:存放本线程的函数调用栈,函数内部的局部变量等2)部分寄存器变量:线程下一步要执行代码...

2019-04-08 20:21:22 1121 2

转载 gdb调试

前言 gdb开始调试开始上手1.开启core,采集程序崩溃的状态  首先你跟着我做开启core崩溃状态采集.可以通过ulimit -c查看如果是0表示没有开启.开启按照下面操作su rootvi /etc/profileShift + Gi# No core files by default 0, unlimited is ooulimit -S -...

2019-04-08 19:42:50 171

转载 netstat命令

在linux一般使用netstat 来查看系统端口使用情况步。 netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的 netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。 该命令的一般格式为: netstat [选项] ...

2019-04-06 10:04:22 377

原创 Linux复习:页面置换算法LRU和FIFO

在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。首先引用定义,当发生缺页中断时,虽可随机选择一个页面来置换,但如果每次都选择不常使用的页面会提升系统的性能。如果一个被频繁使用的页面被置换出内存,很...

2019-04-06 09:33:31 1736 3

原创 Linux复习:PCB task_struct

从经典函数fork()引出1)在父进程中,fork返回新创建子进程的进程ID; 2)在子进程中,fork返回0; 3)如果出现错误,fork返回一个负值; 在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以通过fork返回的值来判断当前进...

2019-04-02 21:16:26 454

转载 linux下非阻塞io库 epoll

假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号楼门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的.进一步解释select和epoll模型的差异.select版大妈做的是如下的事情:比如同学甲的朋友来了,selec...

2019-04-02 19:48:07 573

转载 ssh原理

SSH是每一台Linux电脑的标准配置。随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的使用范围也越来越广。不仅程序员离不开它,很多普通用户也每天使用。SSH具备多种功能,可以用于很多场合。有些事情,没有它就是办不成。本文是我的学习笔记,总结和解释了SSH的常见用法,希望对大家有用。虽然本文内容只涉及初级应用,较为简单,但是需要读者具备最基本的"Shell知识"和了解"...

2019-04-02 16:09:36 191

原创 三指针操作链表逆置

之前以为链表逆置是利用头插法。今天看到一个三指针法,分享一下。class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead->next==NULL||pHead==NULL) return pHead; ListNode* pre=NU...

2019-04-01 15:44:47 416

空空如也

空空如也

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

TA关注的人

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