关于Java并发编程和Web开发的疑问及搜索答案

网络开发为什么要用C#和JAVA

网络一般不都是要求性能很高,并发量很量的吗?像C#和JAVA这样的语言执行的那么慢,有那么多人访问的时候还不卡死,可为什么有些大型网站还是用这样的语言?
 
这里我得提醒你个认识上的误区,首先网络开发,什么是网络开发,这个说法有点面太广了,web开发合适点吧。其次,web应用的开发不一定就是网站,web应用的范围很大,网站只是其中的很小的一部分而已。最后,网站的开发一般选择php或者c#,这样访问速度要比java做出来的网站要快点。但是其他的大型web应用,如果用php做,有时候就会力不从心。也就是说白了,做网站,推荐使用php,做其他web应用,根据不同的需要可以选择C#或者java。
至于你说的并发访问,这个不存在问题,java和C#做的项目慢是因为他们编译解释的过程要用一部分时间,和并发访问没有太直接的关系。
并发访问,影响最大的就是连接池中可用连接的数量的,一般连接池中配置可用连接200的话,就可以支持5000人同时访问web应用了。你想想看,有什么样的web应用同时有那么多人访问呢。就算是同时有10000人访问,也不会卡死,因为,你打开一个页面的时候有加载的进度的,其实这个加载的进度就是你获取和服务器连接的过程,要是长时间加载不上,服务器会提示你服务器忙。

最后在给你说下为什么选择这两种语言。
我很想知道,如果是你,你会选择什么语言做呢,如果是网站你会选择什么语言,如果是大型的web应用呢?
像google和百度这样的应用,它不是网站,每天用google和百度的人不计其数,因为他们在开发这个web应用的时候把并发访问处理的很好,所以,没有卡死。这个和选择什么样的语言关系不是很大。

java游戏开发和web软件开发有什么不同?

web开发更注重web技术,比如服务器、页面展现、高并发等等,数据使用数据库进行存储。
游戏开发更注重媒体方面(声音、图像)以及数据结构、IO存储等等

java web开发网站采用框架的问题?

第一个问题:如果访问量很大,那么框架是不是越简单才能运行越快?
第二个问题:框架越复杂有什么好处?比如SSH+各种技术
如果开发一下这类网站,才用什么框架或者技术比较合适:
第一类:访问人数很多 但不庞大  比如 投票评选之类  比如  在线考试之类
第二类:访问人数多 并且 也比较庞大的管理系统  比如 全市教师系统(录入量大,统计条目多)

回答一:
框架是简单和复杂没有什么明确的界定,主流框架就那几个。
一,不是越简单就越快,在复杂的业务需求下,要保证并发性能需要很多的处理,甚至要增加更多的框架和其他技术。就像汽车难道是设计得越简单就会开得越快吗?
二,框架复杂一般意味着能满足更多的功能和需求,更灵活的使用方式。
这两类网站没什么区别struts/springmvc hibernate/mybatis  spring
可以任意组合,关键是用得熟,一知半解去用就不会有好效果

回答二:
简单的来说 框架不存在复不复杂这种说法  框架的出现就为了能够在程序设计的时候能够更轻松快捷  对于一个项目而言 如果是一次性开发的那实在是没有使用框架的必要  如果项目需要一个持久的更新维护  那采用合适的框架式非常必要   SSH框架是发展非常成熟的三大开源框架  包含了从数据库的持久化设计到JSP页面显示等等 比较符合团队开发的需要及再次开发     针对于你设置的问题的访问量大的话必须要考虑并发  这个最好在数据库设计的时候采用连接池技术  而且框架对于这个也有很好的解决方案

WebService是怎样处理并发用户访问的?

这个问题不是几句话能完全说清楚的,个人看法是涉及到进程,线程,以及锁,活跃度,性能,容器,阻塞等等相关的概念。

简单说一下。

首先看看程序的并发运行

系统中各个部分不再以单纯的串行方式工作。换言之,在任一时刻系统中不再只有一个活动,而是存在着许多并行的活动。从硬件方面看,处理机、各种外设、存储部件常常并行地进行着工作。从程序方面看,则可能有若干个作业程序或者同时、或者互相穿插在系统中并行运行。这时,机器不再是简单地顺序执行一道程序。也就是说,一道程序的前一动作结束后,系统不一定立即执行其后续操作,而可能转而执行其它程序的某一操作。对于程序中可以执行的操作也可能不需要等待另一操作结束,系统就开始执行它们。这样也就打破了程序执行的顺序性。同时,多个程序活动可能是在不同的数据集上执行同一个程序,所以程序以及机器执行程序的活动不再有严格的一一对应关系。

其次是进程的引入

在多道程序工作环境下,一个程序活动不再能独占系统资源,因此也就不再能单独决定这些资源的状态;程序和机器执行程序的活动之间也不再有一一对应关系。总之,程序活动不再处于一个封闭的系统中,而是和其它程序活动之间存在着相互依赖和制约的关系,因而呈现出并发、动态以及相互制约这些新的特征。在这种情况下,程序这个静态的概念已经不能如实地反映程序活动的这些特征。为此,六十年代中期MULTICS操作系统的设计者和E.W.Dijkstra为首的T.H.E操作系统的设计者开始广泛应用进程(process)这一新的概念来描述系统和用户的程序活动。
“进程”是操作系统的最基本的,也是最重要的概念之一。这个概念对于操作系统的理解、描述和设计都具有极其重要的意义。但是迄今为止对这一概念还没有一个确切统一的描述。有人称进程是可以并行运动的计算部分(S.E.Madnick,J.J.Donovan);有人称进程是一个程序与其数据一道在计算机上顺序执行时所产生的活动(A.C.Shaw);有人从调度组织角度出
发,称进程是一个独立的可以调度的活动(Ellis.Cohen,DavidJofferson);有人则从资源共享和竞争方面观察,认为进程是一个抽象的实体,当它执行一个任务时将要求分配和释放各种资源(Peterdenning)。这些描述都注意到了进程的动态性质,但侧重面不同。为了突出进程和程序两个概念的区别和联系,我们对进程作如下描述:进程是一种活动,它是由一个动作系列组成,每个动作是在某个数据集上执行一段程序,整个活动的结果是提供一种系统或用户功能。 

然后是线程

进程具备并发性的特点,这种并发性是不同的进程之间反映出来的,不同的进程有不同进程空间,进程之间的切换消耗比较大。那么就考虑到引入线程的概念,在进程的内部引入并发性,一个进程可以创建多个线程,线程之间具备并发性。不同的线程之间可以共享进程的地址空间和数据。
一般的讲,线程是一个程序,或者进程内部的一个顺序控制流。线程本身不能独立运行,必须在进程中执行,使用进程的地址空间。每个线程有自己单独的程序计数器。
一个进程内部包含多个顺序控制流,或者并发执行多种运算,就是多线程。

java web 开发 j2ee 会用多线程,套接字的知识吗?

做java web方面的开发会用到 多线程,socket的知识吗?希望能有人给我说个方向。例子:下载文件的时候会用到io流的知识。

回答一:
会用到的,多线程知识用的比较多;Socket的知识不会直接用到,但是会帮助对web应用有很深的理解。
回答二:
对于一般的web应用来说,都是多线程处理的,但这个多线程是由容器或者说是服务器控制的,对于web开发者来说是不用也不应该控制的,只是写可能被多线程用到的类,比如用struts时的action类,考虑一下线程安全的问题就行了。一般没用。
回答三:
Javaweb本身就是多线程,至于socket,那就看你应用后台,要不要call其他应用了。。理论上socket用于两个应用之间的通信,如果系统很大的话,可能会用到。



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值