多线程编程学习1——线程与进程

    线程与进程

    使用32位Winodws操作系统时,它能够同事运行几个程序。这种能力称为多任务处理。除了支持多任务,Win32操作系统还支持进程中的多线程处理。


     在Win32操作系统中,采用的是抢先式多任务,这意味着程序对cpu的占用时间是有系统决定的。系统为每个程序分配一定的cpu时间,当程序的运行超过规定时间后,系统就会中断该程序并把cpu控制权转交给别的程序。术语多任务其实就是指系统可以同时运行多个进程。进程是应用程序的运行实例,每个进程都有自己私有的虚拟地址空间。


     每个进程也可以同时执行多个线程。每个进程都有一个主线程,但可以建立另外的线程。进程中的线程是并行执行的,每个线程占用cpu的时间由系统来划分。可以把线程看成是操作系统分配cpu时间的基本实体,系统不停的在各个线程之间切换。由于系统为每个线程划分的时间片很小(20毫秒左右),所以看上去好像是多个线程在同时运行。


    进程中的所有线程共享进程的虚拟地址空间,这意味着所有线程都可以访问进程的全局变量和资源。这一方面为编程带来了方便,但另一方面也容易引起冲突。


    虽然在进程中进行费时的工作不会导致系统的挂起,但这会导致进程本身的挂起。所以,如果进程既要进行长期的工作,又要响应用户的输入,那么它可以启动一个线程来专门负责费时的工作,而主线程仍然可以与用户进行交互。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值