java并发编程:如何创建线程?-java开发java经验技巧

java并发编程:如何创建线程?-java开发java经验技巧

ID:30776624

大小:120.59 KB

页数:9页

时间:2019-01-03

java并发编程:如何创建线程?-java开发java经验技巧_第1页
java并发编程:如何创建线程?-java开发java经验技巧_第2页
java并发编程:如何创建线程?-java开发java经验技巧_第3页
java并发编程:如何创建线程?-java开发java经验技巧_第4页
java并发编程:如何创建线程?-java开发java经验技巧_第5页
资源描述:

《java并发编程:如何创建线程?-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java并发编程:如何创建线程?-Java开发Java经验技巧Java并发编程:如何创建线程?原文出处:海子在前面一篇文章中已经讲述了在进程和线程的曲來,今天就來讲一下在Java中如何创建线程,让线程去执行一个了任务。卜•面先讲述一下J3V3中的应用程序和进程相关的概念知识,然后再阐述如何创建线程以及如何创建进程。下而是本文的目录大纲:Java中关于应用程序和进程相关的概念Java中如何创建线程三・J3V3中如何创建进程一.Java中关于应用程序和进程相关的概念在Java中,一个应用程序对应着一个J

2、VM实例(也有地方称为JVM进程),一般来说名字默认为java,exe或者javaw.exe(windows下可以通过任务管理器查看)。Java采用的是单线程编程模型,即在我们自己的程序中如果没冇主动创建线程的话,只会创建一个线程,通常称为主线程。但是耍注意,虽然只有一个线程来执行任务,不代表JVM中只冇一个线程,JV1实例在创建的时候,同时会创建很多其他的线程(比如垃圾收集器线程)。由于Java采用的是单-线程编程模型,因此在进行UI编程吋要注意将耗吋的操作放在子线程中进行,以避免阻塞主线程(在

3、UT编程时,主线程即UI线程,用來处理用户的交互事件)。二.Java中如何创建线程在java中如果要创建线程的话,一般有两种方式:1)继承Thread类;2)实现Runnable接口。1.继承Thread类继承Thread类的话,必须重写run方法,在run方法小定义需耍执彳亍的任务。classMyThreadextendsThread{privatestaticintnum=0;publicMyThread(){num++;©Overridepublicvoidrun(){System,out.p

4、rintin(,z主动创建的第〃+num+〃个线程〃);}}创建好了自己的线程类之后,就可以创建线程对象了,然后通过start()方法去启动线程。注意,不是调用run()方法启动线程,rim方法中只是定义需要执行的任务,如果调用nm方法,即相当于在主线程中执行rim方法,跟普通的方法调用没有任何区别,此时并不会创建一个新的线程來执行定义的任务。publicclassTcst{publicstaticvoidmain(String[]args){MyThreadthread=newMyThread()

5、;thread,start();}}classMyThreadextendsThread{privatestaticintnum二0;publicMyThread(){num++;}©Overridepublicvoidrun(){System,out.println(z,主动创建的第"+num+"个线程〃);}}在上面代码中,通过调用start()方法,就会创建一个新的线程了。为了分清start()方法调用和nm()方法调用的区别,请看卜•面一个例了:publicclassTest{publics

6、taticvoidmain(Str、ing[]args){System,out.printing主线程ID:Z,+Thread.currentThreadO.getTdO);MyThreadthreadl=newMyThreadC,threadl/,);thread1.start();MyThreadthread2=newMyThread("thread2/z);thread2.r、un();}}classMyThreadextendsThread{privateStringname;publicM

7、yThread(Stringname){this.namc=namc;}©Overridepublicvoidrun(){System,out.printin("name:"+name+"子线程ID:,,+Thrcad・currcntThrc3d()・gctldO);运行结果:从输出结果可以得出以卜•结论:1)threadl和thread?的线程ID不同,thread2和主线程ID相同,说明通过rim方法调用并不会创建新的线程,而是在主线程中直接运行run方法,跟普通的方法调用没有任何区别;2)虽然

8、threadl的start方法调用在thread2的run方法前面调用,但是先输出的是thrcad2的run方法调用的相关信息,说明新线程创建的过程不会阻塞主线程的后续执行。1.实现Runnable接口在Java中创建线程除了继承Thread类之外,还可以通过实现Runnable接口来实现类似的功能。实现Runnable接口必须重写其run方法。下面是一个例了:publicclassTest{publicstaticvoidmain(String[]args){Sys

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。