网站大量收购闲置独家精品文档,联系QQ:2885784924

J的ava多线程技术及案例.docx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
J的ava多线程技术及案例

Java多线程技术及案例进程和线程:  进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。  线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。  线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。  多进程是指操作系统能同时运行多个任务(程序)。  多线程是指在同一程序中有多个顺序流在执行。Java中多线程的多种实现方式Java中有多种多线程实现方法,主要是继承java.lang.Thread类的方法和java.lang.Runnable接口的方法。继承Thread类Thread是java.lang包中的一个类,从这个类中实例化的对象代表线程,启动一个新线程需要建立一个Thread实例。使用Thread类启动新的线程的步骤如下:实例化Thread对象调用start()方法启动线程构造方法:public Thread(String threadName);public Thread();例程:publicclassThread1extendsThread{//定义一个类继承Threadprivateint count=1000;publicvoid run(){//重写run方法while(true){System.out.print(count+ );if(--count==0){return; } } }publicstaticvoid main(String[] args){ Thread1 th1=new Thread1();//实例化继承了Thread的类 Thread1 th2=newThread1(); th1.start();//调用start()方法,th2.start();for(int i=0;i1000;i++){System.out.print(A ); } }}以上例子中,Thread1继承了Thread并重写了run()方法,在主程序中,首先实例化Thread1对象,然后调用start()方法运行run()方法。另外主程序本身是一个线程,再调用两个新线程,根据打印数据,可以看到数字和字母交替输出,而且两组数字序列也穿插出现,说明三个线程都在同步运行。?Java中所有的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源。另外,在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个JVM就是在操作系统中启动了一个进程。Runnable接口实现Runnable接口程序会创建一个Thread对象,并将Runnable对象与Thread对象相关联。使用Runable接口启动新的线程的步骤如下:建立实现Runnable接口的类使用参数为Runnable对象的构造方法创建Thread实例调用start()方法启动线程构造方法:public Thread(Runnable r);public Thread(Runnable r,String name);例程:classThread2implementsRunnable{private String name;public Thread2(String name) {=name; } @Overridepublicvoid run() {for (int i = 0; i 5; i++) {System.out.println(name + 运行 : + i); } }}publicclassMain {publicstaticvoid main(String[] args) {new Thread(new Thread2(C)).start();//new Thread2(C)创建的是Runnable对象,new Thread(new Thread(C))是实例化与Runnable对象相关联的Thread对象new Thread(new Thread2(D)).start(); }}上例主程序中,new Thread2(“C”)创建的是Runnable对象,new Thread(new Thread(“C”))是实例化与Runnable对象相关联的Thread对象。?Thread2类通过实现Runnable接口,使得该类有了多线程类的特征。run方法是多线程程序的一个约定。所有的多线程代码都在run方法里面。Thread和Runnable的区别与联系联系:?我

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档