zoukankan      html  css  js  c++  java
  • 进程

    为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。

    进程的概念主要有两点:

    第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。

    第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

    主要特征

    动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

    并发性:任何进程都可以同其他进程一起并发执行

    独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

    异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

    结构特征:进程由程序、数据和进程控制块三部分组成。

    多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。

    线程

    通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

    因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。

    使用进程,首先引入命名空间using System.Diagnostics;

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace jincheng
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //Process.Start("calc");//开启计算器进程
    
                Process.Start("iexplore","http://www.baidu.com");//打开IE浏览器,并打开指定网址
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                openFileDialog1.Filter = "应用程序|*.exe";//打开文件对话框中打开文件所规定的文件类型
                DialogResult dr = openFileDialog1.ShowDialog();//打开文件对话框
                if(dr==DialogResult.OK)//如果用户点击确定
                {
                    textBox1.Text = openFileDialog1.FileName;//文本框的内容就是打开文件的绝对路径
                }
    
    
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                Process p = new Process();//实例化process这个类
    
                ProcessStartInfo pro = new ProcessStartInfo(textBox1.Text);//启动进程时使用的一组值
    
                p.StartInfo = pro;//将p启动进程指向pro中的文件路径
                try
                {
                    p.Start();
                }
                catch
                {
                    MessageBox.Show("打开文件有误!");
                }
            }
        }
    }

  • 相关阅读:
    解决maven无法下载jar的问题
    Vue-Router 基础
    VUE自定义组件
    VUE过滤器
    VUE生命周期函数
    VUE表单输入绑定
    VUE计算属性和监听器
    VUE 模板语法
    VUE介绍
    taro3.x: 函数组件createIntersectionObserver
  • 原文地址:https://www.cnblogs.com/fengsantianya/p/5638746.html
Copyright © 2011-2022 走看看