java6java6学习笔记59多线程编程new

java6java6学习笔记59多线程编程new

ID:34424105

大小:67.09 KB

页数:3页

时间:2019-03-06

java6java6学习笔记59多线程编程new_第1页
java6java6学习笔记59多线程编程new_第2页
java6java6学习笔记59多线程编程new_第3页
资源描述:

《java6java6学习笔记59多线程编程new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、java6:Java6学习笔记59——多线程编程——线程的同步(version0.2)疯狂代码http://CrazyCoder.cn/ĵ:http:/CrazyCoder.cn/BlogDigest/Article76362.htmlpublicclassJoinDemoextendsObject{;publicstaticThreadcreateThread(Stringname,longnapTime){;;;finallongsleepTime=napTime;;;;Runnabler=newRunnable(){;;;;;;;publi

2、cvoidrun(){;;;;;;;;;try{;;;;;;;;;;;print("inrun()-entering");;;;;;;;;;;;Thread.sleep(sleepTime);;;;;;;;;;}catch(InterruptedExceptionx){;;;;;;;;;;;print("interrupted!");;;;;;;;;;}finally{;;;;;;;;;;;print("inrun()-leaving");;;;;;;;;;};;;;;;;};;;;;};;;;;Threadt=newThread(r,name)

3、;;;;t.start();;;;returnt;;};privatestaticvoidprint(Stringmsg){;;;Stringname=Thread.currentThread().getName();//将打印的信息前边加上由哪个线程打印的出处信息。;;;System.out.println(name+":"+msg);;};publicstaticvoidmain(String[]args){;;;Thread[]t=newThread[3];;;;/*创建了三个线程A、B、C,休眠时间分别为2s,1s,3s*/;;;t[0]

4、=createThread("threadA",2000);;;;t[1]=createThread("threadB",1000);;;;t[2]=createThread("threadC",3000);;;;for(inti=0;i

5、e()+""+name);;;;;;;;print("abouttodo:"+idxStr+;;;;;;;;;;;".join()"+name);;;;;;;;longstart=System.currentTimeMillis();;;;;;;;t[i].join();//waitforthethreadtodie;;;;;;;longstop=System.currentTimeMillis();;;;;;;;print(idxStr+".join()-took"+;;;;;;;;;;;(stop-start)+"ms"+name);;;;;

6、;}catch(InterruptedExceptionx){;;;;;;;print("interruptedwaitingon#"+i);;;;;;};;;};}}运行结果:main:thread[0].isAlive()=true[threadA]//主线程判断线程A的状态main:abouttodo:thread[0].join()[threadA]//主线程准备与线程A同步threadA:inrun()-entering//三个线程依次启动threadB:inrun()-enteringthreadC:inrun()-enteringt

7、hreadB:inrun()-leaving//由于持续时间,B和A先结束threadA:inrun()-leavingmain:thread[0].join()-took2003ms[threadA]//主线程等待到了线程A,花费了2003msmain:thread[1].isAlive()=false[threadB]//主线程判断线程B的状态main:abouttodo:thread[1].join()[threadB]//主线程准备与线程A同步main:thread[1].join()-took0ms[threadB]//由于在同步前线层

8、B已经结束了,所以当主线程等到B的时候其实是没有花费任何时间的。main:thread[2].isAlive()=true[thread

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

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

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