posted @ 2017-03-24 16:54 浅墨浓香 阅读(10) 评论(0) 推荐(0) 编辑
posted @ 2017-03-23 21:49 浅墨浓香 阅读(194) 评论(0) 推荐(0) 编辑
|
||
摘要:
1. 数据结构课程该如何学习 (1)先从概念上形象的理解数据元素之间的关系 (2)思考这种关系能够解决什么问题 (3)考虑基于这种关系能够产生哪些算法。 (4)理解和熟悉最终的算法 (5)选择一种熟悉的语言,编码实战 2. 学习大数据分析需要用到数据结构的知识吗? (1)小数据集合 ①设计一定的数据 阅读全文
posted @ 2017-03-23 21:49 浅墨浓香 阅读(194) 评论(0) 推荐(0) 编辑
摘要:
3.4 进程信号量 (1)进程信号量简介 ①本质上就是共享资源的数目,用来控制对共享资源的访问。 ②用于进程间的互斥和同步。 ③每种共享资源对应一个信号量,为了便于大量共享资源的操作引入信号量集,可对所有信号量一次性操作。对信号量集中所有操作可以要求全部成功,也可以部分成功。 ④二元(也叫双态)信号 阅读全文
posted @ 2017-03-21 13:04 浅墨浓香 阅读(270) 评论(0) 推荐(0) 编辑
摘要:
3.3 共享内存 (1)共享内存简介 ①共享内存区域是被多个进程共享的一部分物理内存 ②多个进程都可把该共享内存映射到自己的虚拟内存空间。所有用户空间的进程若要操作共享内存,都要将其映射到自己虚拟内存空间中,通过映射的虚拟内存空间地址去操作共享内存,从而达到进程间的数据通信。 ③共享内存是进程间共享 阅读全文
posted @ 2017-03-20 14:41 浅墨浓香 阅读(412) 评论(0) 推荐(0) 编辑
摘要:
3. 消息队列 3.1 System V IPC (1)System V IPC概述 ①Unix系统存在信号、管道和命名管道等基本进程间通信机机制。 ②System V引入了三种高级进程间的通信机制:消息队列、共享内享和信号量。 ③IPC对象(消息队列、共享内存和信号量)存在于内核中而不是文件系统中 阅读全文
posted @ 2017-03-20 10:47 浅墨浓香 阅读(439) 评论(0) 推荐(1) 编辑
摘要:
1. 进程间通信概述 (1)概述 ①数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。 ②共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 ③通知事件:一个进程需要向另一个(组)进程发送消息,通知它们发生了某种事件(如进程终止 阅读全文
posted @ 2017-03-19 12:00 浅墨浓香 阅读(579) 评论(0) 推荐(1) 编辑
摘要:
6. 线程和fork 6.1 多线程下的fork (1)历史包袱 ①fork与多线程的协作性很差,这是POSIX系统操作系统的历史包袱。 ②长期以来程序都是单线程的,fork运行正常,但引入线程这后,fork的适用范围大大缩小。 (2)多线程下的fork ①在多线程执行的情况下调用fork函数,仅会 阅读全文
posted @ 2017-03-16 00:07 浅墨浓香 阅读(507) 评论(0) 推荐(0) 编辑
摘要:
5. 线程和信号 5.1 多线程中的信号 (1)在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的。因此,信号处理函数里有时要考虑某些函数可重入或被异步信号中断后的处理。 阅读全文
posted @ 2017-03-15 23:36 浅墨浓香 阅读(1195) 评论(0) 推荐(0) 编辑
摘要:
4. 线程私有数据 (1)线程私有数据的作用 ①线程私有数据是存储和查询与某个线程相关的数据的一种机制,它希望每个线程可以独立的访问数据副本,而不需要担心与其他线程的同步访问问题。 ②进程中的所有线程都可以访问进程的整个地址空间(如全局变量),从而造成线程间使用数据的混乱,而线程私有数据可以维护基于 阅读全文
posted @ 2017-03-13 23:30 浅墨浓香 阅读(267) 评论(0) 推荐(0) 编辑
摘要:
3. 线程属性 3.1 线程属性结构体 (1)pthread_attr_t结构体 (2)线程属性初始化和销毁 头文件 #include <pthread.h> 函数 int pthread_attr _init(pthread_attr_t* attr); //初始化 int pthread_att 阅读全文
posted @ 2017-03-13 23:17 浅墨浓香 阅读(329) 评论(0) 推荐(0) 编辑
摘要:
1. 常见时间复杂度 (1)O(1) < O(logn) < O(n) < O(n*logn) < O(n3) <O(2n) <O(n!) <O(nn) (2)当算法的时间复杂度为O(2n),O(n!)或O(nn)时,即使n值很小,实际的程序运行时间也是不可接受的。 2. 算法的最好与最坏情况 (1 阅读全文
posted @ 2017-03-06 20:41 浅墨浓香 阅读(217) 评论(0) 推荐(0) 编辑 |
||