进程、线程、多线程

1.什么是进程?

   进程是系统中正在运行的一个程序,程序一旦运行就是进程。数据结构

进程能够当作程序执行的一个实例。进程是系统资源分配的独立实体,每一个进程都拥有独立的地址空间。一个进程没法访问另外一个进程的变量和数据结构,若是想让一个进程访问另外一个进程的资源,须要使用进程间通讯,好比管道,文件,套接字等。多线程

           一个进程能够拥有多个线程,每一个线程使用其所属进程的栈空间。线程与进程的一个主要区别是,统一进程内的一个主要区别是,同一进程内的多个线程会共享部分状态,多个线程能够读写同一块内存(一个进程没法直接访问另外一进程的内存)。并发

示例:任务管理器中可看,一个个应用都表明一个 进程异步

 

 

 

 

 

 

 

 

 

 

 2.什么是线程?

线程是操做系统进行运算调度的最小单位。this

进程在执行任何一个 操做或者响应,都是由线程去完成的,进程包含线程,线程必定属于进程,进程和线程之间是一对多的关系操作系统

3.什么是多线程?

一个进程里面有多个执行流并发执行。好比一我的既能够某一段时间内即看电视有吃东西,每一个动做相似于线程,在同一段时间内作不一样的事,而且还能够进行信息共享。线程

4.任何实现单线程、多线程?单线程跟多线程之间有什么区别?

如下实现都基于C#进行实现。3d

UI界面展现:blog

 

计算耗时方法代码:进程

public void DoSomething(int n)
        {
            var threadId = Thread.CurrentThread.ManagedThreadId;

            Console.WriteLine($"button1_Click{n} ==》线程ID:{threadId} ==》当前时间:{DateTime.Now.ToLongTimeString()} start......");

            var num = 0;
            for (int i = 0; i < 1_000_000_000; i++)
            {
                num += i;
            }
            Console.WriteLine($"button1_Click{n} ==》线程ID:{threadId} ==》当前时间:{DateTime.Now.ToLongTimeString()} end......");

        }

  同步方法代码:

//同步方法
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 5; i++)
            {
                this.DoSomething(i);//执行耗时方法
            }
        }

  异步多线程方法代码:

//异步多线程方法
        private void button2_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 5; i++)
            {
int k = i; var task=Task.Run(() => { this.DoSomething(k); });//执行耗时方法
 
 
} }

  同步方法跟异步多线程方法执行后效果对比:

控制台数据结果:

 

 

 

CPU占用资源结果:

 

结果分析:

从执行结果来看,总结几点

1.同步比异步执行时间更长,同步只有一个线程参与计算(主线程),因为主线程参与计算,致使UI界面卡顿,计算完成后主线程闲置,UI界面不卡顿,

异步执行时间短,界面不卡顿,主线程闲置,启用五个线程参与计算,效率高,但占用CPU资源较多。

2.同步符合正常程序逻辑,有序执行,异步执行顺序是无序的,执行顺序是有CPU调度决定。

3.从执行时间来看,单线程执行时间为16582ms,启用五个线程执行时间为3460ms,以正常思惟来看,一个线程执行16582ms,五个线程执行应该是3316ms才对,并无起到五倍的效率。

缘由有两点:1.资源是有限的 2.线程调度会有损耗

 

 

5.总结

同步单线程方式执行效率低,界面卡顿,用户体验性不太好,占用CPU资源少。

异步多线程方式执行效率高,界面不卡顿,用户体验性较好,占用CUP资源多。

有时候使用多线程并非越多越好,应酌情使用。

相关文章
相关标签/搜索