欢迎来到天天文库
浏览记录
ID:41037206
大小:31.00 KB
页数:4页
时间:2019-08-14
《Java多线程编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java多线程编程如何实现多线程?实现多线程的两种方法:1,继承Thread类2,实现Runnable接口例:继承Thread类:MultiThread.java:publicclassMultiThread{publicstaticvoidmain(String[]args){MyThreadmt=newMyThread();mt.start();System.out.println(Thread.currentThread().getName());}}classMyThreadextendsThread{publicvoidrun(){System.out.println(MyTh
2、read.currentThread().getName());}}2:实现Runnable接口:Runnable1.javapublicclassRunnable1{publicstaticvoidmain(String[]args){MyThread1mt=newMyThread1();newThread(mt).start();System.out.println(Thread.currentThread().getName());}}classMyThread1implementsRunnable{publicvoidrun(){System.out.println(Thread
3、.currentThread().getName());}}线程的常用方法有哪些?1,setDaemon(Booleanon):设置后台线程2,yield():在线运行的线程放弃运行权力。3,Sleep(longmillis):线程睡眠,单位毫秒4,同步(synchronized):同步方法和同步块,适用于并行线程共享临界资源5,setPriority:设置线程的优先级,大小从1到10,默认优先级NORM_PRIORITY(5),最大:MAX_PRIORITY(10),最小:MIN_PRIORITY(1)6,wait:每个对象除了有一个锁之外,还有一个等待队列(wait),当一个对象刚创
4、建的时候,它的等待队列是空的。7,我们应该在当前线程锁住对象的锁之后,去调用该对象的wait方法。8,notify:当调用对象的notify方法时,将从该对象的等待队列中删除一个任意选择的线程,这个线程将再次成为可运行的线程。9,当调用对象的notifyAll方法时,将从该对象的等待队列中删除所有等待的线程,这些线程将成为可运行的线程。Wait和notify主要用于生产者和消费者关系中。例:classTest{publicstaticvoidmain(String[]args){Queueq=newQueue();Producerp=newProducer(q);Consumerc=ne
5、wConsumer(q);p.start();c.start();}}classProducerextendsThread{Queueq;Producer(Queueq){this.q=q;}publicvoidrun(){for(inti=0;i<10;i++){q.put(i);System.out.println("Producerput"+i);}}}classConsumerextendsThread{Queueq;Consumer(Queueq){this.q=q;}publicvoidrun(){while(true){System.out.println("Consume
6、rget"+q.get());}}}classQueue{intvalue;booleanbFull=false;publicsynchronizedvoidput(inti){if(!bFull){value=i;bFull=true;notify();}try{wait();}catch(Exceptione){e.printStackTrace();}}publicsynchronizedintget(){if(!bFull){try{wait();}catch(Exceptione){e.printStackTrace();}}bFull=false;notify();retur
7、nvalue;}}
此文档下载收益归作者所有