第4章 Python对象1、Python对象Python使用对象模型来存储数据,构造任何类型的值都是一个对象。所有的对象都有三个特性:
身份,可通过内建函数id()查看,这个值即该对象的内存地址。
类型,可通过内建函数type()查看。
值,对象表示的数据项。>>> p = 12
>>> id(p)
31108092
>>> type(p)
>>> p
12
>>> 2、标...
分类:
编程语言 时间:
2015-03-04 06:17:48
阅读次数:
179
1、内核对象同步与用户模式下同步对比
使用内核对象的唯一缺点就是性能,调用内核对象函数时,调用线程必须从用户模式切换到内核模式,这种切换是相当
耗时的。
内核对象(进程、线程、作业)要么处于触发态,要么处于未触发状态。进程内核对象在创建时总是处于未触发状态,
当进程终止时,操作系统会自动使进程内核对象变成触发状态。当进程内核对象处于触发状态后,将永远保持这种状态,
再也不能变回未触发状态...
分类:
编程语言 时间:
2015-03-01 10:32:56
阅读次数:
344
1、原子锁
使用InterlockedExchangeAdd函数来实现原子增长,InterlockedExchange\InterlockedExchangePointer用来交换两个变
量的值,InterlockedCompareExchange对比数值,相等则交换(对应的InterlockedCompareExchangePointer)。对应的
还有64位函数。
Interlocke...
分类:
编程语言 时间:
2015-01-29 16:01:57
阅读次数:
233
1、操作系统线程调度过程
每个线程都有一个上下文CONTEXT结构体,保存在线程的内核对象中,这个上下文中保存了线程上一次执行时CPU寄存器
的状态。每隔固定时间,Windows会查看所有当前存在的线程内核对象,其中只有一些是可调度的。Windows在可调度的
线程中选择一个,并将上次保存到线程上下文中的数据载入CPU寄存器中。(上下文切换)
CPU时间片到后,Windows移出这个线程,...
分类:
编程语言 时间:
2015-01-28 13:10:00
阅读次数:
220
1、进程与线程
进程是惰性的,从来不执行任何东西,它只是一个线程的容器。线程必定是在某个进程的上下文中创建的,
而且其生命周期都在该进程中。因为句柄表是针对每一个进程的,因此同一个进程中的多个线程可以共享
内核对象句柄。进程运行需要占用许多的内存资源(加载DLL等),进程只需要一个内核对象和一个进程栈,
无需占用多少内存。
2、终止线程的几种方式:
2.1线程函数返回(强烈推荐)
2....
分类:
编程语言 时间:
2015-01-27 16:26:54
阅读次数:
215
/*1、如果进程已经与一个作业相关联,就无法将当前进程及其任何子进程从作业中移除,这个安全特性可以保证
/* 进程无法摆脱对它施加的限制。
/*2、在调试程序时,调试器是从资源管理器启动的,程序会从调试器继承带“PCA”前缀的作业。因此,调试程序
/* 时总是显示进程已经加入了作业。使用命令行来运行程序时就不会有这个问题了。
/*3、关闭一个作业对象,并不会终止作业内所有的进程。作业对象实际上只是...
1.创建文件:创建文件可以使用Linux系统调用create,其原型为:intcreat(constchar*filename,mode_tmode)filename:你要创建的文件名(包含路径,缺省为在当前路径下创建文件)mode_t:创建模式,表示你创建的文件的权限。S_IRUSR可读S_IWUSR可写S_IXUSR可执行S_IRWXU可读可写..
分类:
系统相关 时间:
2015-01-17 23:40:27
阅读次数:
359
在前几遍文章中,我们已经知道了客户端与服务器通信,包括多个客户端与服务器的通信,接下来我们演示下客户端与服务器的完整通信过程。
先看效果图
客户端1
客户端2...
分类:
编程语言 时间:
2015-01-17 12:42:46
阅读次数:
110
在Java网络编程笔记4中我们看到了客户端与服务器通信的过程,只是在前面的程序只是单个客户端与服务器通信
的例子。
接下来我们看如何实现多个客户端与服务器通信,对于服务器来说,它要为每个客户端请求的Socket建立一个线程,并通过它进行通信。
在这里创建一个线程类用来管理Socket:
public class ServerThread extends Thread {
private...
分类:
编程语言 时间:
2015-01-17 11:16:53
阅读次数:
228
6 进程实例句柄
6.1 每一个EXE或者DLL被加载到内存中后,都会被赋予一个独一无二的句柄(HINSTANCE),该句柄在WinMain函数调用时传入。获取应用程序相关信息(资源、路径)时,有的需要传入HINSTANC有的需要传入HMODULE,实际上HINSTANC与HMODULE完全是一回事,这是16位Windows系统上不同数据类型造成的。
WinMain函数的第一个参数:实例句柄是...