多进程 多线程的概念

1.并发

两个或多个任务同时发生一个程序,同时执行多个独立的任务被称作为并发。

在以往的计算机终端和CPU在某一个时刻其实只能执行同一个任务,这个是由它的系统统一调度居你们给每个任务分配固定的时间,对于单核的CPU来说,只要切换的时间频率够快够短,就看起来像是同时在执行好几个程序。

这个其实不算是真正的并发,这种切换是要有时间开销的,因为要保存一些局部的变量,状态执行进度等等都需要保存下来。切换回来之后需要复原信息。

多处理器计算机:用于服务器和高性能的计算领域

现在的台式机每块芯片有多个cpu,双核,4、8、10核,可以实现真正的多核并发,每一个核里面执行一些我们的一个程序。

2.进程

运行起来的可执行程序,其实就是一个可执行程序的执行的最小单元就是一个进程。当我们运行了一个可执行程序时,系统就会开启一个进程。每个进程里面会有一个主线程。主线长只有一个,我们可以通过这个意义。我们可以在代码里面启动其他的线程,当然这个相乘的话可以与主线程执行不同的东西,可以甚至去走向不同的地方。

其实现场就是程序执行的一个通路,这个方向和执行的程序内容是可以由我们自己来指定的。

3.多线程

并不一定多线程就是好的,因为感觉开辟一线城市公共点现场分配空间通常是1M,还有一点就是在多个线程进行切换的时候,需要保存上下文,所以说也是有一定的开销的,并不是说线程越多就越好。

切换会耗费等该属于程序运行的时间,所以当线程多到一定程度时,切换会消耗一定的时间,反而执行真正程序的时间减少了。

其实多线程就是多个线程,做不同的事情。但是想要评论真多现场的效率不是一件容易的事情,如果他们都访问同一个资源的话,那效率就不会很高,如果他们分别访问都是不同的资源,协作完成某一个任务的话,那么效率就比较高。

4.并发的实现方法

实现并发的手段有两种

1.通过多个进程实现并发

2.单独的进程中创建多个线程来实现并发,这个需要我们自己写代码来创建,除了主线程之外的其他线程。

5.多进程并发

不过进程之间的通信是实现的关键,进程之间的通信方式有比较多的方式。如果在同一个电脑上,可以通过管道,文件,消息队列和共享内存等方式来实现通信。

进程之间是需要有数据保护的,所以即便是在不同的电脑上弄的话,也需要保证所有的数据的统一时间是一致的。

6.多线程并发

现成的感觉就像轻量级的进程。每个线程都有自己独立的运行路径,但是一个进程中的所有线程是共享地址空间的,也就是说他们的内存是共享的。因为共享内存上面来进行数据通信非常简单,所以说是用多线程开销远远小于多进程。

共享内存虽然说比较好用,但是他有他的问题,就是如何保证数据的一致性。两个线程要访问同步资源的时候。需要保证这个资源在两个线程之内修改之后结果访问保持一致。

7.建议

虽然多进程和多线程并发可以混合使用,但是建议优先考虑多线程技术手段,而不是多进程,出于一些开销方面的考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值