当前位置: 首页 >服务端 > 【八股文】

【八股文】

什么情况下使用多线程:

1.高并发    系统接受实现多用户多请求的高并发时,通过多线程来实现。
2.线程后台处理大任务     一个程序是线性执行的。如果程序执行到要花大量时间处理的任务时,那主程序就得等待其执行完才能继续执行下面的。那用户就不得不等待它执行完。这时候可以开线程把花大量时间处理的任务放在线程处理,这样线程在后台处理时,主程序也可以继续执行下去,用户就不需要等待。线程执行完后执行回调函数。
3.为了等待网络、文件系统、用户或其他I/O响应而耗费大量的执行时间

多线程的好处:

1.使用线程可以把占据时间长的程序中的任务放到后台去处理
2.用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件事件的处理,可以弹出一个进度条来显示处理的进度
3.程序的运行效率可能会提高
4.在一些等待的任务实现上如用户输入,文件读取和网络收发数据等,线程就比较有用了.
5.充分利用CPU的资源,提高CPU利用率

多线程的缺点:

1.如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换.
2.更多的线程需要更多的内存空间
3.线程中止需要考虑对程序运行的影响.
4.通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生

多线程调度的方式:一般线程调度模式分为两种——抢占式调度和协同式调度。抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长,甚至某些线程得不到执行的时间片。在这种机制下,一个线程的堵塞不会导致整个进程堵塞。协同式调度指某一线程执行完后主动通知系统切换到另一线程上执行,线程的执行时间由线程本身控制,线程切换可以预知,不存在多线程同步问题,但它有一个致命弱点:如果一个线程编写有问题,运行到一半就一直堵塞,那么可能导致整个系统崩溃。

1.sleep方法,休眠
2.yield方法,让步
3.join方法,合并
4.setPriority()  设置优先级的方法  Java把线程优先级分成10个级别 

java为什么移植性好:

因为java有一个JVM(Java Virtual Machine)java虚拟机,源程序*.java被编译成字节码文件,字节码是与平台无关的,是面向jvm编写的,而jvm又有自己的一套指令系统,在不同的平台上jvm的指令也是不一样的,也就是说不同操作平台有自己的jvm但是jvm向上的字节码接口是与平台无关的,jvm接口向下是与硬件有关的,jvm是个中间件,这样只要有字节码和jvm,不管在任何平台都可以运行java程序。全靠的是jvm虚拟机。

什么是临界资源共享:

临界资源是指每次仅允许一个进程访问的资源。每个进程中访问临界资源的那段代码称为临界区。为此,每个进程在进入临界区之前,应先对欲访问的临界资源进行检查,看它是否正被访问。如果此刻该临界资源未被访问,进程便可进入临界区对该资源进行访问,并设置它正被访问的标志;如果此刻该临界资源正被某进程访问,则本进程不能进入临界区。

TCP/IP由四个层次组成:数据链路层、网络层、传输层、应用层

数据链路层是负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
网络层负责相邻计算机之间的通信。其功能包括三方面:一、处理来自传输层的分组发送请求     二、处理输入数据报   三、 处理路径、流控、拥塞等问题。 
网络层负责点到点(point-to-point)的传输(这里的"点"指主机或路由器),而传输层负责端到端(end-to-end)的传输(这里的"端"指源主机和目的主机) 

TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Etheet、Serial Line等)来传送数据。

作者:木南2001
来源链接:https://blog.csdn.net/qq_45226722/article/details/121745299

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/112202.html

标签:八股文
分享给朋友:

“【八股文】” 的相关文章

实习第一周(Golang) 2022年05月14日 16:18:05
[C#]richtextbox实现行号 2022年05月17日 20:27:54
Python 树表查找 2022年05月20日 21:28:27
中间件RabbitMQ 2022年05月23日 16:45:42
如何学习一门语言 2022年05月23日 21:03:30
信息系统项目文档及其管理 2022年05月24日 20:53:47