- 博客(14)
- 资源 (15)
- 收藏
- 关注
转载 如何计算时间复杂度
时间复杂度的定义 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度(O是数量级的符号),简称时间复杂度。一个算法中的语句执行次数称为语句频度或时间频度
2016-04-14 10:09:42 712
转载 tcp帧占用序列号
SYN将占用一个序号FIN将占用一个序号URG(紧急位): 急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的)PSH(急迫位): 在一个交互程序
2016-04-13 16:41:12 1631
转载 孤儿进程与僵尸进程[总结]
2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程
2016-04-13 15:03:48 879
转载 wait和waitpid详解
#include#includepid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。
2016-04-13 14:34:44 571
转载 linux信号量解析
Linux 内核中的信号量使用和用户态的信号量使用有所不同,1、内核信号量,由内核控制路径使用。2、用户态信号量分为两种,一种为POSIX,另一种为 SYSTEM VPOSIX信号量又分为有名信号量和无名信号量。有名信号量,其值保存在文件中, 所以它可以用于线程也可以用于进程间的同步。无名信号量,其值保存在内存中。SYSTEM V接口函数比较复杂,主要区别是函数没有下划线;P
2016-04-13 11:38:12 565
转载 Linux的进程/线程间通信方式总结 04
一、什么是信号量线程的信号量与进程间通信中使用的信号量的概念是一样,它是一种特殊的变量,它可以被增加或减少,但对其的关键访问被保证是原子操作。如果一个程序中有多个线程试图改变一个信号量的值,系统将保证所有的操作都将依次进行。而只有0和1两种取值的信号量叫做二进制信号量,在这里将重点介绍。而信号量一般常用于保护一段代码,使其每次只被一个执行线程运行。我们可以使用二进制信号量来完成这个
2016-04-07 15:28:51 552
转载 C语言变量名的长度规定
A N S I标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分,并且不区分大小写。这里外部名指的是在链接过程中所涉及的标识符,其中包括文件间共享的函数名和全局变量名。 A N S I标准还规定内部名必须至少能由前3 1个字符唯一地区分。内部名指的是仅出现于定义该标识符的文件中的那些标识符。C语言中的字母是有大小写区别的,因此count Count COUNT是三个不同的
2016-04-07 15:03:55 5016
转载 linux线程同步05
线程信号:线程是一种轻量级的进程,因此进程的信号同样适用于线程。不过相对于进程信号,线程拥有与信号相关的私有数据——线程信号掩码,则就决定了线程在信号操作时具有以下特性:A】每个线程可以先别的线程发送信号,pthread_kill()函数用来完成这一操作。B】每个线程都可以设置自己的阻塞集合。pthread_sigmask()用来完成这一操作。类似于进程中的sigprocmask()函
2016-04-07 14:35:29 390
转载 linux线程同步03
信号是向进程发送的软件通知,通知进程有事件发生。引发信号的事件发生时,信号就被生成了。进程根据信号采取行动时,信号就被传递了。信号的寿命就是信号的生成和传递之间的时间间隔。已经生成但还未被传递的信号被称为挂起的信号。在信号生成和信号传递之间可能会有相当长的时间。signal(参数1,参数2);参数1:我们要进行处理的信号。系统的信号我们可以再终端键入 kill -l查看(共64
2016-04-07 10:42:56 366
转载 Linux的进程/线程间通信方式总结 02
互斥锁通信机制:1、互斥锁基本原理:互斥锁以排他的方式防止数据被并发修改。当多个线程共享相同的内存时,需要确保每个线程看到的数据是一样的。如果是只读,那么一定是一样的。如果是可读可写,在一个线程操作一个内存区域时,包含三个步骤,即读出数据,修改数据,写回数据。如果该线程在没有写回数据前,另一个线程来访问同一个区域,如果是读,得不到最新的数据状态,如果是写,则会造成数据覆盖等问题。互斥锁就两
2016-04-06 19:12:17 620
转载 Linux的进程/线程间通信方式总结 01
Linux系统中的进程间通信方式主要以下几种:同一主机上的进程通信方式 * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) * System V进程通信方式:包括信号量(Semaphore), 消息队列(Message Queue), 和共享内存(Shared Memory)网络主机间的进程通信方式
2016-04-06 17:26:39 688
转载 malloc (0)详解
void *malloc(size_t size);...malloc() allocatessize bytes and returns a pointer to the allocated memory. The memory is not cleared. Ifsize is 0, then malloc() returns either NULL, or a unique
2016-04-06 11:48:33 547
转载 排序的时间复杂度
快速排序-时空复杂度:快速排序每次将待排序数组分为两个部分,在理想状况下,每一次都将待排序数组划分成等长两个部分,则需要logn次划分。而在最坏情况下,即数组已经有序或大致有序的情况下,每次划分只能减少一个元素,快速排序将不幸退化为冒泡排序,所以快速排序时间复杂度下界为O(nlogn),最坏情况为O(n^2)。在实际应用中,快速排序的平均时间复杂度为O(nlogn)。快速排序在对序列的操作过
2016-04-06 11:46:11 1581
转载 简单对象访问协议
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。webService三要素SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一,
2016-04-02 19:49:15 481
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人