网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?

网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?,第1张

产生进程的开销要比线程的开销更大。如果你的服务器连接的客户端的数量比较少,那么进程和线程在效率方面的差别感觉并不大。如果数量很大,比如1000,甚至更多,如果你用进程,那么响应完1000+的客户端连接就会变得很慢,因为你要把资源复制1000多份;但是用线程,它们共享同一个进程里的资源,就不需要花那么大的开销去响应客户端的连接。

在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();

一、指代不同

1、并发数:指同时访问服务器站点的连接数。

2、线程数:是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。

二、原理不同

1、并发数:建立在每台服务器多用户的基础上的,也就是多个用户共同使用一台服务器。为了避免同一台服务器上的某一个用户的IIS链接人数过多或占用服务器资源过多而影响其它用户的正常使用。

2、线程数:服务端传送数据到用户端,把用户端和服务端比做两个小岛,线程数比做连接两个小岛之间的桥梁,架桥越多,单位时间内传送的数据越多,但如果桥梁架设超过双方所能承受的数量时,用户端将无法接受其他服务端的数据。

三、特点不同

1、并发数:服务器对于某一个链接的默认超时时间一般为15--20分钟,也就是当访问用户访问你的网页并关闭后,一般需要15--20分钟,服务器才从其内存中将其清除,视为无效链接

2、线程数:用户可以根据不同的服务端限制,来修改下载软件的原始下载线程数。根据下载资源的热门程度,其候选资源数量的不同,该任务下载可用的线程数也会不同。

参考资料来源:百度百科-线程数

参考资料来源:百度百科-并发数

进程是任务管理起里面可以看到的一个程序,就属于一个进程;线程是一个进程,也就是一个程序同时可以执行多少个任务。像多线程下载,有的网站不支持多线程下载,用迅雷或者QQ旋风就会被屏蔽掉;还有多线程破解等等。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13426755.html

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

发表评论

登录后才能评论

评论列表(0条)

保存