`
nathan09
  • 浏览: 155396 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

WinCE下多线程编程 小结

 
阅读更多

1、基础知识:

1)进程(process):是一个具有一定功能的程序在一个数据集合的一次动态执行过程。进程由正文段,用户数据段以及系统数据段共同组成一个执行环境,与处理器、存储器和外设等资源的分配和回收相对应,进程是计算机系统资源的使用主体,也是操作系统分配资源的基本单位。

2)线程:在多个进程并发执行时,进程切换的开销比较大,影响了进程间通信的效率。因此提出了更小的能独立运行的基本单位——线程。线程时进程的一个实体,是cpu调度和分配的基本单位,除了一些在运行中必不可少的资源,线程不拥有系统资源,但是线程可以和同属于一个进程的其他线程共享进程的全部资源。

3)传统的操作系统中,进程是分配资源、独立调度和分配的基本单位,引入线程后,线程当作调度和分配的基本单位,进程仍然是拥有资源的基本单位。

4)关系:为了让进程完成一些工作,进程必须至少占有一个线程,所以线程是描述进程内的执行,正是线程负责执行包含在进程的地址空间的代码。

5)互锁函数: 运行在用户模式,它能保证当一个线程访问一个变量时,其他线程无法访问此变量,以确保变量值的唯一性。这种访问方式叫做原子访问。如InterlockedIncrement(LPLONG)等等。

6)事件对象:事件对象运行在内核模式,利用等待函数来等待所需的事件、信号,在等待的过程中,线程处于睡眠态,当接收到信号后,内核恢复线程的运行。等待函数如:WaitForSingleObjectWaitForMultipleObjects等四个。和事件有关的函数:CreateEventSetEventPulseEventResetEventOpenEvent等。

其中,CreateEvent创建一个事件对象,参数1必须为NULL,参数2指定是否手工重新设置事件对象的状态,如果为FALSE,则当等待函数接到信号并返回后此事件对象被自动置为无效,这时等待此事件对象的其他线程就不会被唤醒;如果为TRUE,则不会被置为无效,其他等待此事件对象的的线程也将被唤醒。

ResetEvent函数可以手工将事件对象置为无效。

SetEvent函数将事件对象置为有效。

OpenEvent打开已经创建的事件对象,一般用于不同进程内的线程同步。

2、线程的编程技术

1)编写线程函数,其必须有如小原型:

DWORD WINAPI MyThread(LPVOID lpvThreadParm);

注意只能有一个参数,这个函数不能由用户调用,由操作系统调用一个内部函数如StartOfThread。

2)创建线程:一个线程的主线程由操作系统自动生成,由主线程创建其他线程用CreateThread函数。

3)终止线程:某线程调用了ExitThread函数,终止自己;调用TerminateThread函数可以终止指定的线程。

4)其他函数:设定优先级SetThreadPriority、挂起线程SuspendThread、恢复线程ResumeThread

分享到:
评论

相关推荐

    WinCE下多线程编程

    【WinCE下多线程编程】是指在Windows CE操作系统中进行多线程应用程序开发,以实现并发处理任务,比如驱动外设,如LED、ADC(模拟数字转换器)、键盘和鼠标等。在WinCE系统中,多线程编程能够提高程序的运行效率,...

    C#下WINFORM和WINCE多线程编程

    下面将详细介绍如何在C#下进行WinForm和WinCE的多线程编程。 1. **线程基础知识** - **线程**:线程是操作系统分配CPU时间的基本单元,每个进程至少有一个线程。 - **主线程**:程序启动时自动创建的线程,负责...

    嵌入式WinCE多线程编程研究与实现

    【嵌入式WinCE多线程编程研究与实现】 Windows CE是一个专为非个人计算机设计的嵌入式操作系统,其核心特性之一就是支持多线程编程。多线程技术允许在一个进程中同时执行多个不同的任务,这极大地提高了处理器的...

    wince论文系列:WinCE多线程编程技术在无纸记录仪中的应用

    【标题】"WinCE论文系列:WinCE多线程编程技术在无纸记录仪中的应用"探讨了在Windows CE(简称WinCE)操作系统下,如何有效地利用多线程编程技术来提升无纸记录仪的性能和功能。无纸记录仪是一种用于实时数据采集和...

    WinCe多线程访问winform中控件

    在Windows CE(WinCe)平台上开发应用程序时,经常会遇到多线程环境下的UI交互问题。标题和描述提及的“WinCe多线程访问winform中控件”是一个关键的编程挑战,因为不正确的操作可能会导致异常,如线程竞态条件、...

    Windows CE中多线程编程的要点

    关于Wince下的多线程编程,编程提高必备

    WinCE线程同步方法

    在Windows CE操作系统中,线程同步是多线程编程中至关重要的一个方面,它确保了在并发执行的线程之间正确地共享资源,避免数据竞争和混乱。本文将详细探讨WinCE中的线程同步方法,包括临界区、事件对象以及它们的...

    wince线程及进程基础

    ### WinCE线程及进程基础 #### 进程与线程概述 在Windows CE (WinCE)操作系统中,进程和线程是系统管理和调度的基本单位。理解进程与线程的基础知识对于开发高效稳定的嵌入式应用程序至关重要。 #### 进程基础 *...

    wince下串口编程(232可用)

    总的来说,WinCE下的串口编程涉及操作系统底层API的调用和通信协议的设计,理解这些基本原理和操作步骤,对于开发和维护嵌入式系统至关重要。"SerialSample1"作为实例,可以帮助我们更直观地学习和应用这些知识。

    Windows Embedded从入门到精通系列课程(29):WinCE下的线程和迚程开发基础

    另外,线程安全的函数和数据结构在多线程编程中尤为重要。线程安全意味着函数在多线程环境下能正确工作,不会因并发访问导致错误。例如,WinCE中的Interlocked函数系列提供了原子操作,保证了对变量的更新不会被其他...

    WinCE入门及编程基础

    本教程将深入浅出地介绍WinCE的基础知识,包括其硬件架构和软件环境,以及如何进行WinCE平台的编程。 一、WinCE硬件及软件概述 1. WinCE硬件平台:WinCE支持多种处理器架构,如ARM、x86、MIPS等。硬件平台通常包括...

    WINCE6.0下使用DSHOW编程

    WINCE6.0下使用DSHOW编程 WINCE6.0下使用DSHOW编程 WINCE6.0下使用DSHOW编程

    wince之TCP网络编程

    wince之TCP网络编程

    WinCE下Socket编程

    ### WinCE 下 Socket 编程详解 #### 一、引言 在计算机网络通信领域,Socket 编程是一项基础而重要的技术。对于嵌入式系统而言,如 Windows CE(WinCE),实现网络通信功能同样至关重要。本文将详细介绍如何在 ...

    wince6.0摄像头C#编程

    WinCE 6.0提供了一个更为稳定和高效的基础,支持多线程和多处理器环境,适合于各种硬件平台。 2. **摄像头驱动开发** 在WinCE 6.0中,摄像头通常需要通过驱动程序来与操作系统交互。开发摄像头驱动需要熟悉WinCE的...

    wince编程宝典

    开发者需要学习如何编写符合WinCE平台规范的代码,包括UI设计、事件处理和多线程编程。 再者,设备驱动开发是WinCE编程的一大重点。书中的章节可能涵盖如何为不同类型的硬件设备编写驱动程序,如串口、USB、GPIO、...

    wince下代码编程实例

    本教程——"wince下代码编程实例",旨在提供一个实践性的学习资源,帮助开发者更好地理解和掌握WinCE平台上的应用开发。 WinCE是一个嵌入式实时操作系统,由微软公司开发,主要用于小型设备如掌上电脑、移动设备...

    wince下串口短信编程(pdu模式)

    在wince下,gsm 模块串口短信编程,包括pdu编码解码.

    wince编程第三版 PDF

    《Windows CE(简称WinCE)编程》第三版是一本深入探讨WinCE操作系统开发技术的权威指南,涵盖了在WinCE平台上进行应用程序开发的核心方面。WinCE是微软推出的一种嵌入式操作系统,广泛应用于移动设备、工业控制和...

Global site tag (gtag.js) - Google Analytics