zoukankan      html  css  js  c++  java
  • 进程与多线程、死锁初步理解

    概念进程是计算机上的一次执行活动,是程序的一次动态执行过程,是操作系统进行资源分配的单位,当运行一个程序就启动一个进程。Process可以访问本地或远程计算机上的进程,并且可以启动和终止本地系统中的进程(System.Diagnostics)

    线程是操作系统分配处理器时间的基本单元,是多个操作系统看起来像同时发生(System.Threading)

      多线程优点:1.用户界面响应时还可做后台操作 2.按优先级执行任务 3.通过网络连接到web服务器或数据库

      多线程缺点:1.加重系统的负荷可能会导致性能降低 2.控制多线程的代码比较难,可能导致很多bug

    多线程:线程是指程序中的一个单一的顺序控制流,线程是进程中的实体。一个进程可以拥有多个线程,一个线程必须有一个父线程。线程不拥有系统资源,只有运行必须的一些数据结构。它与父线程的其他线程共享该进程所拥有的全部资源。线程可以创建撤销,从而实现程序的并发执行

    死锁:死锁是指使用共享资源的两个或多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能进行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。

    实例

    启动线程:

      构造方法用 ThreadStart 代理作为参数;ThreadStart 指向的方法将在线程中执行;线程是通过Start方法来启动
      Thread t = new Thread(new ThreadStart(MyClass.AStaticMethod));
      t.Start();
    线程的属性和参数:

      Thread.Name获取或设置线程名;Thread.Priority获取或设置线程优先级;Thread.IsBackground线程是否可在后台运行
    管理线程:
      Thread.Sleep 阻塞当前线程 Thread.Sleep(3000); // blocks for 3 seconds

      Suspend和Resume并不常用可能导致死锁等应用程序的严重问题

      Thread.Join 等待其它线程停止 t.Join(); // Wait for the thread to exit
      Thread.WaitHandle 等待一个或多个事件 WaitHandle.WaitAll(waitEvents);

      Thread.ThreadState 属性——线程状态

    中断和结束线程:

      Thread.Interrupt 方法 中断处于执行状态的线程 ;Thread.Abort 方法   结束线程运行

      

  • 相关阅读:
    mybatis-cache model
    多线程开发(1)
    正则表达式(3) — 正则表达式库
    正则表达式(2) — 表达式规则
    我在迈瑞工作的两年总结
    正则表达式(1) — 常用的表达式
    C++系列(2) — 智能指针
    C++系列(1) — string
    路径去除前缀
    SIMD性能优化
  • 原文地址:https://www.cnblogs.com/zxhome/p/4130587.html
Copyright © 2011-2022 走看看