Java第09章--1(多线程)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JavaJavapenggang@mail.hust.edu.cn„1.„2.„3.„4.„5.„6.(Daemon)„7.(ThreadGroup)11„„„1„„Web„„Word/Excel„„„1Unix/LinuxWindowsCC++JavaThreadJavaƒCPUjava.lang.ThreadƒThreadThreadƒThread2JavaJavajava.langThreadThread2‰ThreadCPU‰run()run()‰Javarun()run()‰run()run()MPEG2ThreadpublicThread()publicThread(Runnabletarget)publicThread(Runnabletarget,Stringname)publicThread(ThreadGroupgroup,Runnabletarget,Stringname)ƒgroupƒtargetrun()ƒnametargetRunnableRunnablevoidrun()RunnableThreadRunnablenull2Thread„voidrun()„„voidstart()throwsIllegalThreadStateException„„voidsleep(longmillis)„CPU„voidinterrupt()„„staticbooleaninterrupted()„„booleanisInterrupted()„2Thread„booleanisAlive()„startrun„staticThreadcurrentThread()„„voidsetName(StringthreadName)„„StringgetName()„„voidjoin([longmillis[,intnanos]])„mills+nanos2Thread„voiddestroy()„„voidstop()„deprecated„voidsuspend()/voidresume()„/deprecated„staticvoidyield()„„finalvoidsetPriority(intp)„„finalvoidnotify()/notifyAll()/wait(longtimeout)Object/2Threadrun()Threadrun()targetnullThreadThread7.5,P485:ThreadTest.java2RunnableThreadrun()RunnableRunnable7.6,P486:ThreadTester.java2ƒƒRunnableoverriderunpublicclassThreadTesterimplementsRunnableƒRunnableRunnablerun1=newThreadTester(Therad1);ƒThreadRunnablestartThread(run1).start();3newThread()NewThreadRunnablestart()Blockstop()stop()Deadyield()stop()run()exit..suspend()sleep()wait()I/Oresume()notify()/notifyAll()sleeptimeoutI/O.waitingsleepingsuspendingreadyrunning3„isAlive()isAlive()truefalse„join()„yield()readymyThreadthd=newMyThread();thd.start();…thd.join();//thd…//mainjoin//JDK1.0.2join(inttime)time3„sleep()sleep()InterruptedExceptiontry{sleep(100);}catch(InterruptedExceptione){//sleeptimeout…//}„suspend()resume()suspend()suspend()suspend()resume()MethodTest.javaAppletClock.java4Java4Java„Thread.MIN_PRIORITY1(2~4)„Thread.NORM_PRIORITY5„Thread.MAX_PRIORITY10(6~9)Thread.MAX_PRIORITYThread.NORM_PRIORITYintgetPriority()voidsetPriority(intp)TwoThreadsTest.java5——PipethreadmyWritermyReadermyWritermyReaderPipethread.java5——ABStackApushBpop1data=|a|c|||||index=22Apushdata[index]=‘r’data=|a|c|r||||index=23Aindex++ABBpop()‘c’data=|a|c|r||||index=14Aindex++data=|a|c|r||||index=2r5——Java“”objectlockflag“”Java“”ƒvolatileƒsynchronizedsynchronizedvolatilesynchronized“”synchronized“”pushpop121.“”2.synchronized3.synchronizedstallwaitnotify4.synchronized5————putget:ƒƒ5——Javawait()notify()/notifyAll()java.lang.Objectwait()“”waitnotify()/notifyAll()notify()/notifyAll()wait()synchronizedProducerConsumerTest.java7.8P503SynchronousTest.java22RunnableclassProducerimplementRunnable{WareHousew;…}classConsumerimplementRunnable{WareHousew;…}WareHousec=newWareHouse();Runnablep1=Producernew(c);Runnablec1=Consumernew(c);Threadtp=newThread(p1);Threadtc=newThread(c1);tp.start();tc.start();5——Synchronized(b){synchronized(a){…}}Synchronized(a){synchronized(b){…}}Synchronized(a){synchronized(b){…}}Synchronized(a){synchronized(b){…}}6(Daemon)/requestdaemonrun()publicbooleanisDaemon()publicvoidsetDaemon(boolean),7(ThreadGroup)„„suspend,resume„„ThreadGroup(StringgroupName)„ThreadGroup(ThreadGrouptg,StringgroupName)„„„„Thread(ThreadGrouptg,Runnablero)„Thread(ThreadGrouptg,Runnablero,StringthreadName)7(ThreadGroup)„intactiveCount()„„intenumerate(Thread[]list[,booleanrecursive])//false:intenumerate(ThreadGroup[]list[,booleanrecursive])„„getMaxProirity/setmaxProirity„/„getName„„getParent/parentOf„/1.„Ruannable„Thread2.Javarun()Thread3.4.Appletstart()stop()5.6.synchronized7.waitnotify/„„„„„„FileI/O„„

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功