TCP 端口号 UDP 端口号
图 2。1 应用程序、套接字、端口号与 TCP/IP 协议的关系
2。5 多线程
本科毕业设计说明书 第 7 页
在 Windows 操作系统中,线程是系统中最小能独立运行的基本单位。在 Windows 系统中, 线程是调度和分派的基本单位,而进程则是资源拥有的基本单位,一个进程通常包含了多个 线程。
2。5。1 线程与进程
在计算机操作系统中,进程是指当可执行文件运行时,系统所创建的内核对象。每个进 程都有自己的执行地址空间[18]。
通常,操作系统会为运行的 Windows 应用程序自动创建一个线程作为该程序的主线程, 也称为初始化线程。该线程可以根据需要再去创建若干个线程。通常,一个进程都含有多个 相对独立地线程,进程为这些线程提供资源和运行环境。在同一个进程中,该进程的多个线 程之间可以实现相互通信,这是因为一个进程的进程地址空间是由其所有的线程共享的。 2。5。2 线程同步
线程同步是对同一进程中的多个线程在执行次序上进行协调,使线程之间能够有效地共 享资源。举例来说,当用户编写程序时,有时会出现多个线程同时使用相同地址空间中的共 享数据的情况。具体情况可能是一个线程需要读取数据而同时另一个线程需要修改这个数据, 这样的执行结果会导致程序发生读写错误,造成程序异常退出。使用线程同步技术则可以避 免出现这种线程争着访问共享资源而导致程序崩溃的情况。线程同步技术实现的原理就是使 线程排队访问资源,让线程之间相互制约。需要对某一资源进行访问的线程程序只能一个一 个对共享资源进行操作,也就是说,同一时间,只能有一个线程可以访问资源,其他线程等 当前线程结束访问后才可以对资源进行访问[19]。来~自,优^尔-论;文*网www.youerw.com +QQ752018766-
这里主要介绍临界区对象的线程同步方法,也是本文中所使用的方法。 这里有一个临界区的概念,临界区是指访问临界资源的那段代码。临界区对象即临界资
源,是指必须互斥访问的共享资源。即当用户使用某个线程访问共享资源时,这部分代码段 必须要独享该资源,其他线程只能处于等待状态。等该代码段结束访问后,其他线程才能对 资源进行访问。
除此之外,还有事件对象以及互斥对象方法。在这里简单说明一下。事件对象实现线程 的同步是通过用户在程序中使用内核对象的有无信号状态。互斥对象除了可以用于实现线程 同步外,还可以在进程之间使用。