自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 线程同步的几种方式

多个线程同时访问共享数据可能会冲突。比如两个线程同时把某个全局变量增加1需要3步。1.从内存读取变量到寄存器 2.把寄存器中变量值加一 3.把结果返回给内存 不同线程的执行时间会造成结果的不同,这时候就需要线程同步:线程同步的四种方式:互斥量(mutex):引入互斥锁,得到锁的线程执行(读,修改,写)的操作,没有获得锁的线程只能等待,不能共享数据。(读,写,修改)的操作就有了原子性(要么

2017-07-29 14:24:49 6474 1

原创 进程间通信的几种方式

匿名管道 - 是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。命名管道 - 命名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列 - 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。信号量 - 是一个计数器,可以用

2017-07-29 00:00:26 929 2

原创 进程状态

进程线程有哪几种状态。之间转换的关系是什么?下面的状态在/fs/proc/array.c中定义 运行状态(running)表明进程在运行中或者运行的队列中 睡眠状态(sleeping)表明进程在等待事情的完成。 磁盘休眠状态(disk sleep),这个状态下的进程通常会等待IO的结束。 停止状态(stopped),进程收到信号停止 死亡状态(dead)是内核运行里的do_exit()

2017-07-28 23:41:50 1052 2

原创 排序相关面试题总结

旋转数组中的最小元素如{3,4,5,1,2},就是{1,2,3,4,5}左旋两个得到,因为数组可以分为两个递增的部分,左边大于右边,用二分法的思想,中间元素如5大于2,说明5在左边部分,最小元素在右半部分,缩小区间到{5, 1, 2}之间。时间复杂度为O(logN). 注:如果左边元素与右边元素中间元素相同,需要另外处理。如{1,1,1,0,1}和{1,0,1,1,1}都是旋转数组,无法用二分法判

2017-07-26 20:55:33 1175

原创 查并集(朋友圈问题)

假设有A,B,C,D,E,5个人A,B在一个朋友圈内,B,C在一个朋友圈内,这样A,B,C就在一个朋友圈内,总共有多少个朋友圈。 当人数较多时不容易算出。 可以利用数据结构查并集。 设5个人的初值为-1,用数组下标代替A,B,C,D,E A,B在一个朋友圈,设A为根,B的值替换为A的下标,将A,B合并,A加上B本身的值为-2代表朋友圈内有两个人,当所取得值为负数时为根,为正数时代表所在朋

2017-07-24 16:11:03 5018 1

原创 STL空间配置器

当用户申请的内存大于128时调用一级空间配置器。 小于或者等于128调用二级空间配置器。 一级空间配置器是malloc的封装,如果不能成功申请到空间,用户通过调用set_malloc_handler函数可以自己设定处理函数。 二级空间配置器类似哈希桶,将128的区块分为16个分别为8,16,24。。。128大小的区块,用free_list来保存. 用户每次申请小于128的内存,会提升的8

2017-07-24 12:32:21 416

原创 单链表相关面试题总结

主要来自于《剑指offer》,都是面试高频题1. 删除结点删除节点需要知道上一个节点的地址。就需要遍历,可以把问题转化为删除下一个节点,把下一个节点的值拷贝给本节点。 删除pdel就转化为删除pnext,不需要再从头遍历。时间复杂度为O(1).但是pdel为尾节点或者头节点需要另外的处理。typedef struct SignalListNode { SignalListNode(co

2017-07-10 23:30:39 608

原创 TCP server的实现,和多线程,多进程服务器

socket在TCP/IP协议中,“IP地址+TCP/UDP端口号”表示唯一网络通信中的一个进程,IP地址+端口号称为socket。 注意: 字节序有大端和小端,在两台使用不同字节序的主机上通信,为了让两台主机间能正确的通信,发送端总是把字节序转成大端字节序数据后在发送,接收方知道接受的一定是大端字节序,然后根据自己的字节序进行转化就不会出错。调用函数int socket(int domain,

2017-07-08 23:57:26 8845

原创 多路转接-EPOLL 及简单的EPOLL服务器实现

EPOLL简介EPOLL是linux下公认的最好用的I/O就绪通知方式。 epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显着提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描

2017-07-04 11:14:54 833 1

webp格式文件,可以以用于测试

webp格式文件,可以以用于测试K

2018-09-27

空空如也

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

TA关注的人

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