zoukankan      html  css  js  c++  java
  • C# 多线程系列(一)

    1、线程概念

      进程(process)是一块包含某些资源的内存区域,操作系统利用进程把它的工作划分为功能单元。而线程是进程的一个实体,是CPU调度和分派的基本单元,是比进程更小的能独立运行的基本单元。线程自己并不拥有系统资源,只是拥有在运行中必不可少的极少资源(如程序计算器,一组寄存器和栈等),但是它与同属一个进程的其他线程共享进程所拥有的全部资源。

      应用程序中,一个程序至少有一个进程,一个进程至少有一个线程.

    2、多线程的优点

      (1)提高CPU利用率

      (2)提高程序响应速度。多线程可将应用程序相关功能划分为多个单独的任务并发处理,不影响主线程运行,提高程序响应速度。

      (3)相对进程开销小,易于进行调度。

      (4)可调节多线程任务优先级,便于提高程序的性能。

    3、多线程的缺点

      (1) 等待使用共享资源(主要是独占性资源,如打印机)时会造成程序运行速度变慢。

      (2) 多线程的管理需要额外的CPU开销。

      (3) 多线程的死锁,长时间的等待资源以及资源竞争容易造成线程死锁。

      (4) 对公有变量的同时读或写,容易造成多线程不同的数据处理产生共有变量数据错误。

      (5) 线程的异常中断,容易产生一些我们无法预知的错误。

    4、多线程简单实例

      引用线程所在类:using System.Threading;  

      定义线程:Thread myThread;

      线程添加函数:myThread=new Thread(new ThreadStart(myMethod));期中ThreadStart参数为无返回类型,无参数的函数。

      线程启动:myThread.start();执行myMethod函数体。

      终止线程:myThread.Abort();

    5、多线程调用带参函数

      初始化带参线程:myThread=new Thread(myMethod);此时myMethod为带object类型参数的函数。

      区别在于线程启动是传入object类型参数:myThread.Abort(parms);parms为object类型参数,启动后自动将parms带入执行函数中。

    Best Wish !
  • 相关阅读:
    gulp使用技巧-删除node_modules文件夹,解决目录层次太深删除报错的问题
    PHP学习-链接数据库
    教程笔记《JavaScript深入浅出》
    读书笔记《高性能网站建设指南》之雅虎军规
    CSS3边框图片-像素虚边的问题
    WebStorm设置手机测试服务器-局域网内其他设备访问
    gulp的安装和使用
    H5canvas赛车游戏-基于lufylegend引擎
    WebStorm设置左侧菜单栏背景色和样式
    基于jquery的-获取短信验证码-倒计时
  • 原文地址:https://www.cnblogs.com/ultimateWorld/p/4620619.html
Copyright © 2011-2022 走看看