java多线程干货系列(1):java多线程基础-编程开发技术

java多线程干货系列(1):java多线程基础-编程开发技术

ID:30780031

大小:615.50 KB

页数:23页

时间:2019-01-03

java多线程干货系列(1):java多线程基础-编程开发技术_第1页
java多线程干货系列(1):java多线程基础-编程开发技术_第2页
java多线程干货系列(1):java多线程基础-编程开发技术_第3页
java多线程干货系列(1):java多线程基础-编程开发技术_第4页
java多线程干货系列(1):java多线程基础-编程开发技术_第5页
资源描述:

《java多线程干货系列(1):java多线程基础-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、hva多线程干货系列(1):Java多线程基础-编程开发技术Java多线程干货系列(1):Java多线程基础原文出处:嘟嘟MD多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们來说极其重要,下面跟我一起开启本次的学习之旅吧。正文线程与进程1线程:进程小负责程序执行的执行单元线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境2进程:执行屮的程序一个进程至少包含一个线程3单线程:程序中只存在一个线程,实际上主方法就是一个主线程4多线程:在一个程序中

2、运行多个任务目的是更好地使用CPU资源线程的实现继承Thread类在java,lang包中定义,继承Thread类必须重写run()方法classMyThreadextendsThread{privatestaticintnum=0;publicMyThread(){num++;©Overridepublicvoidnan(){System,out.println(z,主动创建的第"+num+"个线程〃);}}创建好了自C的线程类之后,就町以创建线程对象了,然后通过start()方法去启动线程。注意,不是调用run()

3、方法启动线程,nm方法小只是定义需耍执行的任务,如果调用run方法,即相当于在主线程中执行tun方法,跟普通的方法调用没有任何区别,此时并不会创建一个新的线程來执行定义的任务。publicclassTest{publicstaticvoidmain(String[]args){MyThrcodthread二newMyThrcod();thread,start();}}classMyThreadextendsThread{privatestaticintnum二0;publicMyThread(){num++;}©Ove

4、rridepublicvoidnan(){System,out.println(z,主动创建的第"+num+"个线程〃);}}在上面代码中,通过调用start()方法,就会创建一个新的线程了。为了分清start()方法调用和nm()方法调用的区别,请看卜•面一个例了:publicclassTest{publicstaticvoidmain(String[]args){System,out.println(z,主线程ID:Z,+Thread・currentThread()・getld());MyThreadthrcadl

5、=newMyThread(〃thrcadT');threadl.start();MyThreadthread2=newMyThread("thread2z,);thread2.run();classMyThreadextendsThread{privateStringname;publicMyThread(Stringname){this.namc=namc;}©Overridepublicvoidrun(){System.out・printin("namc:?,+n3nic+"了线程ID:,Z+Thread.curr

6、entThread().getld());}}运行结果:'霞曰控制台空■LogCatQDevices总凋用层次结构(心变星船寄存器口内存彩凋试test[JavaC:ProgramFiIesJavajre6binjavaw.exe(2014-8-15上午10:0i:25)主线程ID:iname:thread2子线程ID:2name:threadl子线程ID:8从输出结果可以得出以卜•结论:1)threadl和thread?的线程ID不同,thread2和主线程ID相同,说明通过rim方法调用并不会创建新的线程,

7、而是在主线程中直接运行run方法,跟普通的方法调用没有任何区别;2)虽然threadl的start方法调用在thread2的run方法前面调用,但是先输出的是thrcad2的run方法调用的相关信息,说明新线程创建的过程不会阻塞主线程的后续执行。实现Runnab1e接口在Java中创建线程除了继承Thread类之外,还叫以通过实现Runnable接口來实现类似的功能。实现Runnable接口必须重写其run方法。下面是一个例子:publicclassTest{publicstaticvoidmain(String[]a

8、rgs){System,out.printin(,z主线程TD:Z,+Thrcad・currcntThrcad()・gctldO);MyRunnablerunnable=newMyRunnable();Threadthread=newThread(runnable);thread,start();}}classMyRunnable

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

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

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