<2017年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 28 下一页
摘要: 谈谈windows线程栈。 当系统创建线程时会为线程预订一块地址空间区域,注意仅仅是预订。默认情况下预定的这块区域的大小是1MB,虽然预订这么多,但是系统并不会给全部区域调拨物理存储器。默认情况下,仅仅为两个页面挑拨。x86系统下每个页面是4KB.其他页面会在访问的时候由系统调拨。这仅仅是在创建线程 阅读全文
posted @ 2018-05-18 09:15 史D芬周 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 堆 前面我们说过堆非常适合分配大量的小型数据。使用堆可以让程序员专心解决手头的问题,而不必理会分配粒度和页面边界之类的事情。因此堆是管理链表和数的最佳方式。但是堆进行内存分配和释放时的速度比其他方式都慢,而且无法对物理存储器的调拨和撤销调拨进行控制。 什么是堆? 在系统内部堆就是一块预定的地址空间区 阅读全文
posted @ 2018-05-18 09:15 史D芬周 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 在应用程序中使用虚拟内存 Windows提供了以下三种机制对内存进行操控: 一:虚拟内存。最适合来管理大型对象数据或大型结构数组。 二:内存映射文件。最适合用来管理大型数据流,以及在同一机 器上运行的多个进程之间共享数据。 三:堆。最适合用来管理大量的小型对象。 很多人都对VirtualAlloc和 阅读全文
posted @ 2018-05-18 09:14 史D芬周 阅读(299) 评论(0) 推荐(0) 编辑
摘要: Windows线程池 上一篇博文我们介绍了IO完成端口。得知IO完成端口可以非常智能的分派线程。但是IO完成端口仅对等待它的线程进行分派,创建和销毁线程的工作仍然需要我们自己来做。 我们自己也可以创建线程,但是涉及到线程的编码操作比较复杂,容易出现差错。为了简化程序员的工作,Windows提供了一个 阅读全文
posted @ 2018-05-18 09:13 史D芬周 阅读(422) 评论(0) 推荐(0) 编辑
摘要: Windows内存体系结构 理解Windows内存体系结构是每一个励志成为优秀的Windows程序员所必须的。 进程虚拟地址空间 每个进程都有自己的虚拟地址空间。对于32位操作系统来说,它的地址空间是4GB。这是因为32位指针可以表示从0x00000000到0xFFFFFFFF之间的任一值。对于64 阅读全文
posted @ 2018-05-18 09:13 史D芬周 阅读(891) 评论(0) 推荐(0) 编辑
摘要: 同步设备IO与异步设备IO之异步IO介绍 设备IO与cpu速度甚至是内存访问相比较都是比较慢的,而且更不可预测。虽然如此,通过使用异步设备IO我们仍然能够创造出更高效的程序。 同步IO时,发出IO请求的线程会被挂起。而异步IO时发出请求的线程不会被挂起,而是可以继续执行。异步IO请求传给了设备驱动程 阅读全文
posted @ 2018-05-18 09:12 史D芬周 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行。 异步IO是指:线程发起IO请求后并不会挂起而是继续执行。IO完毕后会得到设备的通知。而IO完成端口就是实现这种通知的很好的一种方式。 线程是我们开发高性能、响应性好的一个必不可少的工具。这样在多处理器上就可以同时执行多 阅读全文
posted @ 2018-05-18 09:11 史D芬周 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 使用内核对象进行线程同步。 前面我们介绍了用户模式下线程同步的几种方式。在用户模式下进行线程同步的最大好处就是速度非常快。因此当需要使用线程同步时用户模式下的线程同步是首选。 但是用户模式下的线程同步也存在缺点。如InterLocked系列函数只能对一个值进行操作。关键段虽然可以对一段代码进行操作, 阅读全文
posted @ 2018-05-18 09:10 史D芬周 阅读(831) 评论(0) 推荐(0) 编辑
摘要: 线程调度、优先级和关联性 每个线程都有一个CONTEXT结构,保存在线程内核对象中。大约每隔20ms windows就会查看所有当前存在的线程内核对象。并在可调度的线程内核对象中选择一个,将其保存在CONTEXT结构的值载入cpu寄存器。这被称为上下文切换。大约又过20ms windows将当前cp 阅读全文
posted @ 2018-05-18 09:09 史D芬周 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 用户模式下的线程同步 系统中的线程必须访问系统资源,如堆、串口、文件、窗口以及其他资源。如果一个线程独占了对某个资源的访问,其他线程就无法完成工作。我们也必须限制线程在任何时刻都能访问任何资源。比如在一个线程读内存时要限制其他线程对此块内存进行写入。 线程之间的通信很重要,尤其是在以下两种情况下: 阅读全文
posted @ 2018-05-18 09:09 史D芬周 阅读(496) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 28 下一页