自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱吃_宫爆鸡丁

勤学如春起之苗,不见其增,日有所长

  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

转载 深入理解乐观锁与悲观锁

       在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是数据库系统中有乐观锁和悲观锁的概念,像memcache、hibe...

2018-07-31 21:12:26 124

原创 死锁

并发性——死锁死锁:多个进程因竞争资源而造成的一种僵局(Deadly Embrace),若无处力作用,这些进程将永远不能再向前推进。产生进程死锁的的原因:竞争系统资源 进程的推进顺序不当 产生死锁的必要条件:互斥条件:一个资源只能由一个进程独自占有使用 请求和保持条件:进程请求资源得不到导致阻塞,自身占有资源却又不释放 非剥夺条件:自己占有的资源不能被其他进程强行夺走...

2018-07-31 20:50:03 213

原创 UNP卷二 chapter11 System V信号量

1、System V信号量概述system V信号量增加了另外一级复杂度:计数信号量集:一个或多个信号量(构成一个集合),其中每个都是计数信号量。每个集合的信号量数存在一个限制。一般在25个数量以上。于是谈及system V信号量时,均指是计数信号量集。而谈及Posix信号量时,均指单个计数信号量。(说实话真搞不懂system V为什么要这么定义信号量,还是Posix信号量好理解多了)...

2018-07-31 15:23:07 153

原创 UNP卷二 chapter10 Posix信号量

1、信号量概述信号量(semaphore)是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语。i、Posix有名信号量:使用Posix IPC名字标识,可用于进程或线程间的同步;ii、Posix基于内存的信号量:存放在共享内存区中,可用于进程或线程间的同步;iii、System V信号量:在内核中维护,可用于进程或线程间的同步。Posix信号量不必在内核中维护。其...

2018-07-29 15:36:40 234

转载 mysql添加用户使用命令

进入mysql添加用户使用命令:mysql> insert into mysql.user(Host,User) values("localhost","tt9527");提示出错:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value原因是这个Mysql版本里User表里没有Password字段了...

2018-07-28 16:22:33 636

转载 C语言中可变参数的实现即va_list、va_start、va_arg、va_end的说明

说到C语言函数可变参数,我们最先想到的可能就是printf、scanf、printk了。在Linux-2.6.24.7内核源码里,printf函数原型如下: asmlinkage int printk(const char *fmt, ...)      asmlinkage表示通过堆栈传递参数。gcc编译器在汇编过程中调用c语言函数时传递参数有两种方法:一种是通过堆栈,...

2018-07-27 16:05:20 1430

原创 UNP卷二 chapter8 读写锁

1、读写锁被锁锁住的临界区域通常涉及由多个线程共享一个或多个数据的访问或更新。而有时候可以在读某个数据与修改某个数据之间区别。读写锁将在获取读写锁用于读和获取读写锁用于写之间作区分。i、只在没有线程持有某个给定的读写锁用于写,那么任意数目的线程可以持有该读写锁用于读;ii、仅当没有线程持有某个给定的读写锁用于读或用于写时,才能分配该读写锁用于写。通俗的话来讲,读写锁没有写时,无所谓多少个读;读写锁...

2018-07-16 13:49:32 198

原创 Effective C++ 条款49、50

条款49 了解new-handler的行为1、当operator new抛出异常以反映一个未获满足的内存需求之前邮寄费会先调用一个客户指定的错误处理函数,一个所谓的new-handler。为了指定这个“用以处理内存足”的函数,客户必须调用set_new_handler。关于<new>的一个标准程序库函数:namespace std { typedef void(*new_handle...

2018-07-15 23:10:13 291

原创 UNP卷二 chapter9 记录上锁

此处讲述的锁是读写锁的一种扩展类型,可用于亲缘关系或无亲缘关系的进程之间共享某个文件的读或写。被锁住的文件通过其描述符访问,执行上锁操作的函数是fcntl。此类型的锁通常在内核中维护,其属主是由属主的进程ID标识的。意味着此锁用于不同进程间的上锁,而不是用于同一进程内不同线程间的上锁。1、一个例子讲明一个进程记录上锁利用打印机假脱机处理系统使用的技巧,即给每台打印机准备一个文件,此文件只有...

2018-07-15 16:56:13 209

原创 UNP卷二 chapter7 互斥锁和条件变量

为允许在线程或进程间共享数据,同步通常是必需的。互斥锁和条件变量是同步的基本组成部分。1、互斥锁:上锁与解锁此处小标题内容已在UNPv1第26章线程讲解中有所记录。互斥锁指代相互排斥,是最基本的同步形式。互斥锁用于保护临界区,以保证任何时刻只有一个线程在执行其中的代码,或只有一个进程在执行其中的代码。Posix互斥锁被声明为具有pthread_mutex_t数据类型的变量。有两种分...

2018-07-11 22:41:55 230

原创 UNP卷二 chapter6 System V 消息队列

1、System V 消息队列既然是消息队列,就与管道有所区别,队列可以先写入,再读取消息。而管道必须是先有读取的等待,再对管道进行写入。对于系统中的每个消息队列,内核维护一个定义在<sys/msg.h>头文件中的信息结构,如下所示:struct ipc_perm { uid_t uid; gid_t gid; uid_t cuid; gid_t cgid; mode_t m...

2018-07-10 15:22:13 185

原创 Effective C++ 条款45、46

条款45 运用成员函数模板接受甩有兼容类型条款46 需要类型转换时请为模板定义非成员函数此条款类比条款24(将所有参数需隐式类型转换的函数定义为non-member函数)学习。以上内容均来自Scott Meyers大师所著Effective C++ version3,如有错误地方,欢迎指正!相互学习,促进!!...

2018-07-09 20:56:22 253

原创 UNP卷二 chapter5 Posix消息队列

1、Posix消息队列消息队列可认为是一个消息链表,含三个消息的某个Posix消息队列的可能布局如下,队列与管道和FIFO的区别在于,管道和FIFO是先有读出者,后有写入者(意思是有进程在管道一端进行读取操作,此时在管道另一端进行写入操作才是有意义的。可以将管道看作是一个通道,没有缓存效果),而队列可以实现某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达(也...

2018-07-07 23:46:51 168

原创 在一个数列中寻找两个数2sum、三个数3sum、四个数4sum分别求和等于目标式

2sum:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the sa...

2018-07-07 12:15:42 327

原创 求字符串中最长回文字符串

刷第二遍leetcode了啦!本题的解法见证了自己对解回文子字符串题目的认知过程。有点感触,便记录了两种解法。第一种是有多幼稚哈,但也是学习过程中的一部分。对自己喊加油,再刷100道题。题目:Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of...

2018-07-06 11:00:41 642 3

原创 Effective C++ 条款43、44

条款43 学习处理模板化基类内的名称条款44 将与参数无关的代码抽离以上内容均来自Scott Meyers大师所著Effective C++ version3,如有错误地方,欢迎指正!相互学习,促进!!...

2018-07-05 13:18:54 716

原创 UNP卷二 chapter4 管道和FIFO

1、概述和一个简单的客户-服务器例子管道是最初的Unix IPC的形式,其局限性在于没有名字,从而只能由有亲缘关系的进程使用。FIFO有时又称有名管道,其最大好处可用于无亲缘关系的进程间通信。利用客户与服务器利用IPC通道通信样例2、管道(一般指半双工模式)a、pipe函数及实现方式#include<unistd.h>int pipe(int fd[2]);...

2018-07-03 23:43:35 198

转载 Unix网络编程v2 源代码编译环境构建

OS:Ubuntu16.04  所需源码压缩文件资料unpv22e.tar.gz1. 源码解压(unpv22.tar.gz就在主目录下):tar -zxvf unpv22e.tar.gz2. 编译库文件(进入unpv22e目录)cd unpv22e./configure编辑生成config.h文件,注释以下几行vim config.h56 //#define uint8_t unsigned ...

2018-07-03 19:15:30 363

原创 Effective C++ 条款41、42

条款41条款42以上内容均来自Scott Meyers大师所著Effective C++ version3,如有错误地方,欢迎指正!相互学习,促进!!

2018-07-02 12:33:44 362

原创 最后一个暑假

走着走着,转眼就到了七月,即将就要迎来最后一个暑假。总觉得明天24小时的时间很多,但睡一觉到达明天的第一感觉,可利用的时间也就区区那几个小时,但自己要完成的事却还停留在那。对于一名2019年应届生来说,这个暑假留给自己看书的时间还真心不多了。总感觉自己的知识储备还不太够,为此还想多看些书,以作好准备迎接2018年的秋招。但每天留给自己的时间也就那区区几个小时。不想过多的总结过往的事迹,在此,我更想...

2018-07-01 23:54:22 311

转载 malloc/free与new/delete的区别

1、C系统的函数库中提供的动态分配和释放内存空间的函数i、malloc函数:在内存动态存储区分配一段长度为size个字节的连续空间,如果分配成功,函数返回该函数的起始地址;如不分配成功,则返回空指针(NULL)。函数原型:void* malloc(unsignedint size)    (函数返回的地址没有表明存储空间存储的数据类型,如果将该地址赋予一个具体类型的指针变量,则必须进行强制...

2018-07-01 20:45:53 150

转载 TCP的拥塞控制——慢启动/拥塞避免/快重传/快恢复/NewReno/SACK的拥控/积极队列管理和ECN

tcp的拥塞控制1. 拥塞即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随负荷的增大而下降。   拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。(拥塞...

2018-07-01 13:32:54 726

空空如也

空空如也

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

TA关注的人

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