• 进程与多线程、死锁初步理解


    概念进程是计算机上的一次执行活动,是程序的一次动态执行过程,是操作系统进行资源分配的单位,当运行一个程序就启动一个进程。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 方法   结束线程运行

      

  • 相关阅读:
    一次心惊肉跳的服务器误删文件的恢复过程
    ThreadPoolExecutor使用详解
    Springboot学习笔记(一)-线程池的简化及使用
    springboot之异步调用@Async
    CentOS 7添加开机启动服务/脚本
    三分钟在任何电脑上使用 chrome os
    Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos
    Nacos部署中的一些常见问题汇总
    Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Apollo
    Spring Cloud Alibaba 新版本发布:众多期待内容整合打包加入!
  • 原文地址:https://www.cnblogs.com/zxhome/p/4130587.html
Copyright © 2020-2023  润新知