- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java多线程程序设计 程序、进程和线程 程序:一段静态的代码,是应用软件执行的蓝本。 进程:一个独立程序的每一次运行称为一个进程,是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。作为执行蓝本的同一段程序可以被多次加载到系统的不同内存区域分别执行,形成不同的进程。例如: 用word编辑文稿时,同时在另一个窗口下载音乐,这两个独立的程序在同时运行,称为两个进程。 一个应用程序的执行(如java程序)也对应于一个进程。 操作系统周期性的讲CPU切换到不同的任务,分时间片轮流运行每一个进程,而每一个进程都像是连续运行的。每一个进程占有自己的内存空间。 线程 线程:比进程更小的执行单位,一个进程在其执行过程中可以产生多个线程,形成多条执行线索,每条线索即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的过程。 日常生活中的程序、进程和线程: 程序:每学期的课程表 进程:每学期的教学活动 线程:每门课的教学过程 单线程/多线程 早期在计算机上开发的程序大多是单线程的,就是一个程序只有一条从头到尾的执行线索。 多线程是一个进程中多段代码同时并发执行,是指程序中包含多条执行路径。在一个程序中同时运行多个不同的线程来执行不同的任务,即允许单个程序创建多个并行执行的任务来完成各自的任务。采用多线程,一个进程的若干任务就可以细分为多个部分由多线程来处理,这样可以增强整个程序的吞吐量,加快反应时间。例如: 浏览器程序就是一个多线程的例子, 当下载一个应用程序或图片时,可以同时进行其他任务,例如播放动画或声音的应用程序、打印某些内容、进行排序或者其他工作。 聊天室(多人同时聊天) 在现实生活中,很多的过程都具有多条线索同时动作的特性,例如,我们可以一边走路,一边接电话,两件事并行。如果不允许这样做,我们会感觉很难受。 多任务、多进程、多线程 多线程和多任务是两个既有联系又有区别的概念: 多任务是针对操作系统而言的,代表着操作系统可以同时运行多个应用程序(多进程),例如我们可以利用计算机边听音乐,边浏览网页,或者从网络上下载东西,等等。 多线程是针对一个程序而言的,代表着一个程序内部可以同时执行线程的个数,而每个线程可以完成不同的任务。 多任务、多进程、多线程 要认识多线程就要从操作系统的原理说起。 以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率,采用批处理来批量执行任务。 ? 现在的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如你在听歌的同时还在用MSN和好友聊天。听歌和聊天就是两个任务,这个两个任务是“同时”进行的。一个任务一般对应一个进程,也可能包含好几个进程。比如运行的MSN就对应一个MSN的进程,如果你用的是windows系统,你就可以在任务管理器中看到操作系统正在运行的进程信息。 多任务、多进程、多线程 一般来说,当运行一个应用程序的时候,就启动了一个进程,当然有些会启动多个进程。启动进程的时候,操作系统会为进程分配资源,其中最主要的资源是内存空间,因为程序是在内存中运行的。在进程中,有些程序流程块是可以乱序执行的,并且这个代码块可以同时被多次执行。实际上,这样的代码块就是线程体。线程是进程中乱序执行的代码流程。当多个线程同时运行的时候,这样的执行模式成为并发执行。 ? 多线程的目的是为了最大限度的利用CPU资源。 多任务、多进程、多线程 对于一个进程中的多个线程来说,多个线程共享进程的内存块,当有新的线程产生的时候,操作系统不分配新的内存,而是让新线程共享原有的进程块的内存。因此,线程间的通信很容易,速度也很快。不同的进程因为处于不同的内存块,因此进程之间的通信相对困难。 ? 实际上,操作的系统的多进程实现了多任务并发执行,程序的多线程实现了进程的并发执行。多任务、多进程、多线程的前提都是要求操作系统提供多任务、多进程、多线程的支持。 Java对多线程的支持 很多程序语言都是利用外部的线程软件包来实现多线程。如C语言。 Java是第一个支持内置线程操作的主流编程语言。Java语言的一大特性就是内置对多线程的支持。多线程指同时存在几个执行体,按几条不同的执行线索共同工作的情况,它使得编程人员可以很方便地开发出具有多线程功能、能同时处理多个任务的功能强大的应用程序。 虽然执行线程给人一种几个事件同时发生的感觉,但这只是一种错觉,因为我的计算机在任何给定的时刻只能执行那些线程中的一个,为了建立这些线程正在同步执行的感觉,java快速地把控制从一个线程切换到另外一个线程多个线程的执行是并发的,也是一种逻辑
文档评论(0)