在操作系统中引入线程带来的主要好处?

在操作系统中引入线程带来的主要好处?,第1张

相对于进程来说,线程所占用资源更少,比如创建进程,系统要为它分配进程很大的私有空间,占用的资源较多,而对多线程程序来说,由于多个线程共享一个进程地址空间,因此占用资源较少。此外,进程间切换时,需要交换整个地址空间,而线程之间切换时只是切换线程的上下文环境,因此效率更高。在操作系统中引入线程带来的主要好处是:(1)在进程内创建、终止线程比创建、终止进程要快。(2)同一进程内的线程间切换比进程间的切换要快,尤其是用户级线程间的切换。(3)每个进程具有独立的地址空间,而该进程内的所有线程共享该地址空间。因此,线程的出现可以解决父子进程模型中子进程必须复制父进程地址空间的问题。(4)线程对解决客户/服务器模型非常有效。

在java5以前实现多线程有两种方法(继承Thread类和实现Runnable接口)

它们分别为:

使用new Thread()和new Thread(Runnable)形式

第一种直接调用thread的run方法,所以,往往使用Thread子类,即new SubThread()。

第二种调用

Runnable的run方法。

第一种:

new Thread(){}.start()这表示调用Thread子类对象的run方法,new Thread(){}表示一个Thread的匿名子类的实例对象,子类加上run方法后的代码如下:

new Thread(){

public void run(){

}

}.start()

第二种:

new Thread(

new Runnable(){}

).start()

这表示调用Thread对象接受的Runnable对象的run方法,new Runnable(){}表示一个Runnable的匿名子类的实例对象,

runnable的子类加上run方法后的代码如下:

new Thread(new Runnable(){

public void run(){

}

}

).start()

在进行服务器处理的过程中,需要保证数据的正确处理,那么最重要的就是使用不同的数据处理模式进行运算。

在整个过程中,可能很多人对服务器的知识并不了解,那么应该如何进行Java开发服务器的线程处理呢,关于线程处理有哪些知识?下面运城北大青鸟为大家介绍关键服务器线程处理的简单知识。

1、BIO线程模型在JDK1.4中引入JavaNIO之前,所有基于Java的Socket通信都使用了同步阻塞模式(BIO)。

这种请求-响应通信模型简化了上层的应用程序开发上,但在具有性能和可靠性的情况下,存在一个巨大的瓶颈。

在一段时间里面,大型应用程序服务器主要是用C或C++开发的,因为它们可以直接使用操作系统提供的异步I/O或AIO功能。

当流量增加且响应时间延迟增加时,JavaBIO开发的服务器软件只能通过硬件的不断扩展来满足并发性和低延迟的情况,这极大地增加了企业的成本和群集大小。

系统的不断扩展,系统的可维护性也面临着巨大的挑战,只能通过购买性能更高的硬件服务器来解决问题,这将导致恶性循环的产生。

2、异步非阻塞线程模型从JDK1.0到JDK1.3,Java的I/O类库非常原始。

UNIX网络编程中的许多概念或接口未反映在I/O类库中,例如Pipe、Channel、Buffer和Selector等。

在发布JDK1.4的时候,NIO正式发布JDK作为JSR-51。

并且它还添加了一个java.nio包,为异步I/O开发提供了许多API和库。

3、RPC性能三原则影响RPC的性能主要有三大元素,其中主要为I/O模型、协议及线程。

I/O模型:使用什么样的通道传递给另一方,BIO,NIO或AIO发送数据,IO模型在很大程度上能够决定框架的性能。

协议:应该使用什么样的通信协议,Rest+JSON或基于TCP的专用二进制协议。

参加电脑培训的过程中发现,协议的选择不同,性能模型也不同。

内部专用二进制协议的性能通常可以比公共协议更好地设计。

线程:如何读取数据报?在执行读取后的编解码器的哪个线程中,如何分发编码消息,通信线程模型是不同的,并且对性能的影响也非常大。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/749217.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-15
下一篇2023-08-15

发表评论

登录后才能评论

评论列表(0条)

    保存