9:38 2009-7-29


[知识点]
partial(C# 参考)  分部类型定义允许将类、结构或接口的定义拆分到多个文件中。
1.asp.net代码智能感知
 ctrl+k,p
2.[codesmith]设置
 <%
   string strTmep="";
   for (int intIndex=0;intIndex<command.Parameters.Count;intIndex++)
 {
  ParameterSchema p = command.Parameters[i];
    strTmep+= string.Format("[{0}], ",
    p.Name);
  
 }
 %>
[单词]
Balanced growth 国民经济各部门的平衡增长
Treasury 财政部 Secretary  部长
concluded 得出结论
foreign policy 外交政策
shakes hands 握手
memorandum of understanding 谅解协议
energy 能源
drive up 使。。。上升
trade deficit贸易逆差
boosting  增大 domestic demand 国内需求
in particular 特别
implemented 使生效,执行
domestic consumption 国内消费
assets 资产
urged 力劝
abide by 遵守 WTO rules and shun  避开 trade protectionism.
constructive 建设性的
leadership 领导
underpinning 基础
long-term objectives 长期的目标
concerns 忧虑
striking 显著的
conciliatory 调和的
tone腔调
discussions 讨论
quizzed 问答比赛 ,小测验
soaring 高 飞的 budget deficits预算赤字

[VC++ 孙鑫]
1.UdpClient
 创建套接字,不需要绑定,要有地址信息,定义地址结构体变量
inet_addr()// 把点分十进进转成ulong类型
定义字符数组,接收数据,发送数据,临时存放数据
在接收数据时,要返回长度
做while(1)循环,发送数据,输入数据,gets函数发送数据,
sendto(套接字,发送数据buffer,长度,flag,地址结构体指针,长度)
发送完后,等服务器端的回应信息
 recvfrom(套接字,接收数据,长度,flag,接收返回的地址信息 指针,指向整形的指针长度)
接收完后,判断服务器端数据是否想退出,判断第一个字符是否是Q
 如果退出,发送q
 不是q,把服务器端的回应打在屏幕上,

2.参数信息
gets(char*)
char recvBuf[100] gets(recvBuf);)

3.总结
固定步骤:
加载套搠字库,创建套接字,绑定信息,设置监听,等待客户请求,
netSrv程序运行有问题

十五,第15课 多线程与聊天程序的创建
1.程序:计算机指令集合,以文件形式存在磁盘上
2.进程:正在运行的程序的实例,是程序在自身的地址空间中的一次执行活动
 组成:1.内核对象,内存块,是一种数据结构,
      2.地址空间,可执行模块或dll模块的代码和数据,包含动态内存分配空间,如线程堆栈,和堆分配空间
  进程不执行任何东西,用线程执行包含在进程的地址空间中的代码,
 创建一进程时,OP会自动创建这个关于这个进程的第一个主线程,main(),winmain(),此后可以创建其它线程
 线程“同时”执行进程空间中的代码
 =系统赋予每个进程独立的虚拟地址空间,32位的地址空间为4GB
 每个进程都有自己的私有地址空间,进程A中运行的线程不能访问进程B的地址空间中的数据结构,
 =4G是虚拟地址空间,只是内存的一个范围,要成功访问数据,必须赋予物理存储器(物理内存和页文件大小,可在ctrl+alt+del看到),或将物理存储器映射到各个部分的地址空间
 pagefile.sys.页文件 ,在C盘目录下,透明的增加了可使用的内存,在磁盘上划分的一块区域,
使用的内存,如果超 过了页文件的初始大小,页文件会自动增长,如果大于最大值后,系统可能崩溃,文件夹查看-显示受保护的文件,


 =4G虚拟地址空间中,2G是内核方式分式,供内核代码,设备驱动程序,设备I/O高速缓冲,非页面内存池的分配,进程页面表
      2G是用户方式分区使用的地址空间,进程不能访问在该 分区中的另一个进程中的数据,维护进程的大部分数据的地方
 3.线程,
 组成:1.线程的内核对象,对线程实施管理,系统用来存放线程统计信息的地方
       2.线程堆栈,维护线程在执行代码时需要的所有参数和局部变量
 当创建线程时,系统创建一个线程内核对象,是操作系统用来管理线程的较小的数据结构。
 =线程总在进程环境中创建,系统从进程的地址空间分配内存,供线程堆栈使用,新线程进行的进程环境与创建
线程的环境相同,因此,新线程可以访问进程的内核对象的所有句柄,进程中的所有内存和在这个相同的进程中的所有其他
纯种的堆栈,这使得单个进程中的多个线程能够相互通信。
 线程只有一内核对象和一堆栈,保留记录少,所需内存也少,
 线程需要的开销比进程少,在编程中采用多线程来解决编程问题。尽量避免创建新进程。
4.线程进行
 操作系统为每个运行线程安排一定的CPU时间-时间片,
  系统通过一种循环的方式为纯种提供时间片,纯种在自己的时间内运行,因时间片相当短,因此,给用户感觉线程是同时运行的。
 如果多CPU,线程就真正意义上同时运行了
5.采用多线程程序的理由
 1.进程创建,系统分配4G空间,占有资源多,线程是共享空间,占用资源少,
 2.进程与进程切换,要交换整个地址空间。而线程与线程的切换,只时执行环境的改变,效率高
代码:
 创建线程 api createthread(指向结构体指针1,初始提交的栈的大小2,线程起始地址3,4,5,)
  2.不同CPU页面大小不同,x86 4K

你可能感兴趣的:(多线程,数据结构,编程,虚拟机,能源)