
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
高并发编程开发是目前大多数软件开发程序员在开发软件的时候都需要满足的一个开发需求,下面我们就通过案例分析来了解一下,多线程与高并发之间的关系分析。
共享数据来说,这个是有解决方案的,各位有兴致的话,可以去查查,但是还是不如在一个地址空间方便。节约资源的话,
在进程身上寻求解决方案,是没有结果的,进程的开销无法避免,在进程身上找不到解决方案的话,我们不妨跳出去,也就是说提出一种新的实体,应当满足以下特性:
实体之间可以并发地执行
实体之间共享相同的地址空间,这样实体之间共享数据相对来说更为简单。
基于此,我们需要再度审视一下我们的进程:
从资源组合的角度:进程把一组相关的资源组合起来,构成了一个资源平台,包括地址空间(代码段、数据段)、打开的文件等各种资源,
从运行的角度:代码在这个资源平台上的一条执行流程。
粗略的说,我们可以将进程当做资源和执行流程的复合体,进程=资源+执行流程。执行流程往前再进一步就是线程,上面用进程展示的MP3播放软件,我们关注的也就是执行流程:读取、解压、播放,我们可以将这三个执行流程放在一个进程里面,我们大致上可以这么讲,线程=进程-共享资源。显然我们可以看出多线程相对于多进程的优势,注意这里要强调一点,多线程相对于多进程来说并非是碾压级别的优势,比如chrome浏览器就是多进程,为什么chrome浏览器采取多进程机制呢,我们考虑一下,线程们是处在一个地址空间的,假设chrome是多线程,那么一个网页的某个线程因为某些原因发生了异常,那么势必影响到所有的网页,这是我们不想看到的。多线程是一种手段,多进程也是,要根据场景灵活的选择。多线程相对于多进程的优点就是:
共享资源更为容易,因为都处于一个地址空间。
各个线程之间可以并发的执行
一个进程内可以有多个线程,更为节省资源。
缺点:
一个线程的崩溃,可能会影响整个进程
进程VS线程
出现线程之后,进程的地位就又发生了变化。
进程是资源分配单位,线程是CPU调度单位。
进程拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈。
线程同样具备就绪、阻塞和执行三种基本状态,同样具有状态之间的状态关系。
线程能减少并发执行的时间和空间开销:
线程的创建时间比进程短,因为所需资源更少。
线程的终止时间比进程短。
同一进程内线程切换时间比进程短
由于同一进程的各线程共享内存和文件资源,可直接进行不通过内核的通信。
当我们说起多线程与高并发时
当我们说起多线程与高并发时,我们就姑且理解为当前计算机上的资源使用率很高,场景在详细一些,比如购物节,用户访问量会比平时高很多,一般来说服务端的做法是,为一个用户开启一个线程来处理用户的请求,用户很多,然后就是多线程,很多线程必然是并发执行,所以说是高并发。
所以我个人认为当我们说起多线程与高并发时,说的就是在用户量访问量在一段时间猛增时,应该怎么去解决。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。