zoukankan      html  css  js  c++  java
  • 网络编程(1)进程和线程

         进程是对一段静态指令序列(程序)的动态执行过程,是系统进行资源分配和调度的一个基本单位。同一个进程是可以划分为若干个独立的执行流,也称之为线程。

         线程是CPU调度和分配的基本单位。在Windows环境下,用户可以同时运行多个应用程序,执行的应用程序就是一个进程。例如一台电脑上同时打开两个QQ时,每个运行的QQ就是一个进程;而用一个QQ和多个人聊天时,每个聊天窗口就是一个线程。
         在C/S模式下,服务器需要不断监听来自各个客户端的请求,这时,如果采用单线程机制的话,服务器将无法处理其他事情,因为这个线程要不断的循环监听请求而无法对其他请求做出响应。实际上,当要花费大量时间进行连续的操作时,或者等待网络或其他I/O设备响应时,都可以使用多线程技术。
        在C#中,用于处理进程和线程的类是:Process类和Thread类。


    1.Process类
        Process类位于System.Diagnostics命名空间下,用于完成进程的相关处理任务,以及对进程进行管理、我们在在本地机器上可对线程进行启动、停止、查询操作:

    启动进程:

     

    Process.Start("notepad.exe");

     Process.Start()重载方法如下:

               1.Start(ProcessStartInfo) 启动由包含进程启动信息(例如,要启动的进程的文件名)的参数指定的进程资源,并将该资源与新的 Process 组件关联。

               2.Start(String, String) 通过指定应用程序的名称和一组命令行参数来启动一个进程资源,并将该资源与新的 Process 组件相关联。

               3.Start(String, String, SecureString, String) 通过指定应用程序的名称用户名密码和域来启动一个进程资源,并将该资源与新的 Process 组件关联起来。

               4.Start(String, String, String, SecureString, String) 通过指定应用程序的名称、一组命令行参数、用户名、密码和域来启动一个进程资源,并将该资源与新的 Process 组件关联起来。

     获取进程:

    代码
    //获取本地所有进程并输出
    Process[] process;
    process
    = Process.GetProcesses();
    foreach (var item in process)
    {
    Console.WriteLine(item.ProcessName);
    }

     

     停止进程:

    代码
    //停止线程
    Process[] process;
    process
    = Process.GetProcessesByNam("ProcessesName");
    foreach (var item in process)
    {
    item.WaitForExit(
    1000); //终止线程前等待的毫秒数
    item.Close();//释放与此组建关联的所有资源
    item.CloseMainWindow();//关闭拥有用户界面的进程
    }

     

     

     2.Thread

        位于System.Threading命名空间下,Thread是用于创建和控制线程的一个。对线程的常用操作有:启动线程、终止线程、合并线程和让线程休眠等。

  • 相关阅读:
    eclipse修改web项目部署路径
    Jquery面试题
    23中设计模式之单例模式
    详细探讨单例模式
    java常用设计模式
    vue官网总结
    pytorch模型训练加速tricks
    element table显示滚动条
    vue中less文件全局引用
    vue路径别名无法识别,Cannot find module
  • 原文地址:https://www.cnblogs.com/tanliang/p/1940225.html
Copyright © 2011-2022 走看看