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 方法   结束线程运行

      

  • 相关阅读:
    App.js – 用于移动 Web App 开发的 JS 界面库
    【入门必备】最佳的 Node.js 学习教程和资料书籍
    Fort.js – 时尚、现代的表单填写进度提示效果
    单页网站不是梦,几款国外的单页网站创建工具
    Numeral.js – 格式化和操作数字的 JavaScript 库
    ShortcutMapper – 热门应用程序的可视化快捷键
    Origami – 用于 Quartz 的免费的交互设计框架
    20款时尚的 WordPress 简洁主题【免费下载】
    JSCapture – 基于 HTML5 实现的屏幕捕捉库
    推荐12款实用的 JavaScript 书页翻转效果插件
  • 原文地址:https://www.cnblogs.com/zxhome/p/4130587.html
Copyright © 2011-2022 走看看