1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 网络编程基础知识之单线程与多线程

网络编程基础知识之单线程与多线程

时间:2020-03-02 01:41:13

相关推荐

网络编程基础知识之单线程与多线程

网络编程基础知识之单线程与多线程

程序、进程、线程

程序通俗地说就是由源代码生成的可执行应用。

进程就是当一个程序开始运行时,它就是一个进程。进程包括运行中的程序和程序所使用到的内存和系统资源。即进程包括该程序以及运行该程序所需要的内存和资源(如CPU)。一个进程是由一或多个线程组成,进程只负责资源(如CPU)的调度和分配,线程才是真正执的执行单元,使用进程给予的资源进行处理操作。

线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的。即不同的线程可以执行同一份代码段。线程在整个程序运行的过程中是独立运行的,且线程和线程之间是透明的,即线程本身是不知道有其它线程存在的。

单线程

每个正在运行的程序(即进程),至少包括一个线程, 这个线程叫做主线程。

主线程在程序启动时被创建,用于执行main函数。

只有一个主线程的程序,称之为单线程程序。

主线程负责执行程序的所有代码,这些代码只能顺序执行,不能并发执行。

多线程

多线程是指程序中包含多个执行流,即在一个程序中可以运行多个不同的线程来执行不同的任务,也就是说单个程序可以创建多个并行执行的线程来完成各自的任务。主线程之外的均为子线程,子线程和主线程都是独立的运行单元,各自的执行互不影响。

多线程的优点

可以提高CPU的利用率。在多线程编程中,一个线程必须等待时,CPU可以运行其它的线程而不是处于等待过程中,这样可以极大提高程序的执行效率。

多线程的缺点

线程也是程序的一部分,即线程也需要占用内存,线程越多占用的内存越多,非常依赖硬件的优劣。

多线程需要协调和管理,即需要CPU时间跟踪线程。

线程之间对共享资源的写操作会相互影响。

线程过多会导致控制以及逻辑都太过复杂,最终出现很多Bug。

学习参考文章

点击跳转

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。