TEL:18810043668

点击这里给我发消息
QQ客服1

扫描微信咨询

java/jsp网站开发建设  案例

他们选择了麦哲,下一个期待是您! 业务服务热线:010-57298550

java/jsp网站开发建设  案例

java开发网站多线程操作的原理

发布时间: 2015-10-20

java开发网站多线程操作的原理很简单,这是java开发网站需要明白的基础概念之一。以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率,采用批处理来批量执行任务。

 
现在的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如你在听歌的同时还在用MSN和好友聊天。听歌和聊天就是两个任务,这个两个任务是“同时”进行的。一个任务一般对应一个进程,也可能包含好几个进程。比如运行的MSN就对应一个MSN的进程,如果你用的是windows系统,你就可以在任务管理器中看到操作系统正在运行的进程信息。
 
一般来说,当运行一个应用程序的时候,就启动了一个进程,当然有些会启动多个进程。启动进程的时候,操作系统会为进程分配资源,其中最主要的资源是内存空间,因为程序是在内存中运行的。在进程中,有些程序流程块是可以乱序执行的,并且这个代码块可以同时被多次执行。实际上,这样的代码块就是线程体。线程是进程中乱序执行的代码流程。当多个线程同时运行的时候,这样的执行模式成为并发执行。
 
多线程的目的是为了最大限度的利用CPU资源。
 
java建站时,Java编写程序都运行在在Java虚拟机(JVM)中,在JVM的内部,程序的多任务是通过线程来实现的。每用java命令启动一个java应用程序,就会启动一个JVM进程。在同一个JVM进程中,有且只有一个进程,就是它自己。在这个JVM环境中,所有程序代码的运行都是以线程来运行。
 
一般常见的Java应用程序都是单线程的。比如,用java命令运行一个最简单的HelloWorld的Java应用程序时,就启动了一个JVM进程,JVM找到程序程序的入口点main(),然后运行main()方法,这样就产生了一个线程,这个线程称之为主线程。当main方法结束后,主线程运行完成。JVM进程也随即退出 。
 
对于一个进程中的多个线程来说,多个线程共享进程的内存块,当有新的线程产生的时候,操作系统不分配新的内存,而是让新线程共享原有的进程块的内存。因此,线程间的通信很容易,速度也很快。不同的进程因为处于不同的内存块,因此进程之间的通信相对困难。
 
实际上,操作的系统的多进程实现了多任务并发执行,程序的多线程实现了进程的并发执行。多任务、多进程、多线程的前提都是要求操作系统提供多任务、多进程、多线程的支持。
 
在Java程序中,JVM负责线程的调度。线程调度是值按照特定的机制为多个线程分配CPU的使用权。
调度的模式有两种:分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时间;抢占式调度是根据线程的优先级别来获取CPU的使用权。JVM的线程调度模式采用了抢占式模式。
 
所谓的“并发执行”、“同时”其实都不是真正意义上的“同时”。众所周知,CPU都有个时钟频率,表示每秒中能执行cpu指令的次数。在每个时钟周期内,CPU实际上只能去执行一条(也有可能多条)指令。操作系统将进程线程进行管理,轮流(没有固定的顺序)分配每个进程很短的一段是时间(不一定是均分),然后在每个线程内部,程序代码自己处理该进程内部线程的时间分配,多个线程之间相互的切换去执行,这个切换时间也是非常短的。因此多任务、多进程、多线程都是操作系统给人的一种宏观感受,从微观角度看,程序的运行是异步执行的。
 
用一句话做总结:虽然操作系统是多线程的,但CPU每一时刻只能做一件事,和人的大脑是一样的,呵呵。
 
 
 

相关文章

医图网(B2B2C电商平台-Java mysql开发)
医图网(B2B2C电商平台-Java mysql开发)

医疗素材行业的B2B2C垂直电商平台,采用java(jsp)语言开发,商家可以再次开店铺,通过卖获取收益,买家可以买到心怡的素材,同时支持买卖双方定向邀请合作,发布供求信息等 。

开放数据委员会(Java mysql开发)
开放数据委员会(Java mysql开发)

此次改版,采用Java mysql开发,突出安全性,可拓展性,跨平台和开放性,将官网展示,内部办公融为一体。是麦哲网联门户网站制作和jsp网站开发的力作。

中国国家图书馆(Java mysql开发)
中国国家图书馆(Java mysql开发)

中国国家图书馆原创视频教育平台是麦哲网联视频网站建设开发的里程碑意义的事,整站采用

青岛清算所(java网站建设)
青岛清算所(java网站建设)

青岛清算所java网站建设,定制企业官网。

慧尔思一对一在线教育电商系统网站平台开发
慧尔思一对一在线教育电商系统网站平台开发

慧尔思一对一在线教育电商系统网站平台开发。在线教育平台开发是教育行业互联网+的必然趋势。麦哲网联认为:

艺虫(B2C)电商平台
艺虫(B2C)电商平台

艺术品B2C垂直电商平台,采用java(jsp)语言开发,可提供艺术品售卖,艺术品定制,并定期举办相关展览活动,二期可开展sns社交网站

易捷保社保(B2B2C)电商服务平台
易捷保社保(B2B2C)电商服务平台

垂直电商平台,采用java(jsp)语言开发。无论是个人还是企业,都可以借助易捷易捷保社保(B2B2C)电商服务平台保第三方社保服务平台缴纳社保,公积金。该平台可设立全国分站,根据各地社保政策,设定社保基数。

正在为您刷新更多案例……