Java中Thread的使用死锁以及生产者消费者问题详解

Java中Thread的使用死锁以及生产者消费者问题详解

ID:42785422

大小:71.00 KB

页数:8页

时间:2019-09-22

Java中Thread的使用死锁以及生产者消费者问题详解_第1页
Java中Thread的使用死锁以及生产者消费者问题详解_第2页
Java中Thread的使用死锁以及生产者消费者问题详解_第3页
Java中Thread的使用死锁以及生产者消费者问题详解_第4页
Java中Thread的使用死锁以及生产者消费者问题详解_第5页
资源描述:

《Java中Thread的使用死锁以及生产者消费者问题详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、for(inti=0;i<100;i++){21System.out.println("******线程4****"+i);22}23}24}).start();25for(inti=0;i<100;i++){26System.out.println("******主线程****"+i);27}28}29}30/**31*32*四种方法实现线程的创建,两种运用的是内部类一种是实现接口,一种是继承线程33*34*/35classMyThread1extendsThread{36@Override37publicvoidrun()

2、{38for(inti=0;i<100;i++){39System.out.println("++++线程一++++++"+i);40}41}42}43classMyThread2implementsRunnable{44@Override45publicvoidrun(){46for(inti=0;i<100;i++){47System.out.println("-----线程二-------"+i);48}49}50}当想让线程暂时暂停,进入休眠状态,可以用Sleep实现,该方法是静态方法,可以直接被Thread引用。可以

3、在方法中设置休眠的时间。下面通过一个例子来说明Sleep的用法1packagejava819;2importjava.io.IOException;3importjava.nio.CharBuffer;4publicclassTestSleep{5publicstaticvoidmain(String[]args){6Runnerr=newRunner();7Threadt1=newThread(r);8Threadt2=newThread(r);9t1.start();10t2.start();11}12}13classRu

4、nnerimplementsRunnable{14@Override15publicvoidrun(){16for(inti=0;i<200;i++){17if(i%10==0&&i!=0){18try{19Thread.sleep(1000);//Sleep的用法20}catch(InterruptedExceptione){21e.printStackTrace();22}23}24System.out.println("——————————线程————————————"+i);25}26}27}当想让一个线程先执行完再去

5、执行另一个线程时,可以用Join方法将当前线程先执行完。下面通过一个例子来说明Join的用法。1packagecn.yj3g;2publicclassTestJoin{3publicstaticvoidmain(String[]args){4MyThread2t1=newMyThread2("zhangcun");5t1.start();6try{7t1.join();//先执行调用join方法的线程对象的run方法,完成后才调用这条语句所在的线程8}catch(InterruptedExceptione){9e.printS

6、tackTrace();10}1112for(inti=1;i<=10;i++){13System.out.println("------iammainthread");14}15}16}17classMyThread2extendsThread{18MyThread2(Strings){19super(s);20}21publicvoidrun(){22for(inti=1;i<=10;i++){23System.out.println("Iam"+getName());24try{25sleep(1000);26}catc

7、h(InterruptedExceptione){27System.out.println("又被打爆了!");28return;29}30}31}32}当需要一个线程让出当前执行状态即CPU,给其他线程执行的机会,就需要使用Yield方法,使当前线程暂时阻塞,让程序去执行其他的线程。还是通过一个例子来说明。1packagejava819;2publicclassTestYield{3publicstaticvoidmain(String[]args){4MyYieldmy1=newMyYield();5MyYield2my2

8、=newMyYield2();6my1.start();7my2.start();89}10}11classMyYieldextendsThread{12@Override13publicvoidrun(){14for(inti=0;i<100;i++){15System.o

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

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

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