线程Thread,Runnable
生活随笔
收集整理的這篇文章主要介紹了
线程Thread,Runnable
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
package com.aaa;//public class Ticket extends Thread{ //1.當(dāng)主線程發(fā)現(xiàn)這個類的對象繼承了Thread后,就會開一個新的線程讓其執(zhí)行
public class Ticket implements Runnable{ //1.實現(xiàn)runnablepublic void run(){//2.重寫該方法for(int i = 1;i < 50000 ;i++){try {Thread.sleep(100);//哪個線程運行這個方法,那個線程就會sleep掉,醒來后并不是馬上執(zhí)行,而是//等到CPU執(zhí)行到自己,所以sleep時間可能會超過這個時間} catch (InterruptedException e) {// TODO Auto-generated catch block
e.printStackTrace();}Thread.yield();//哪個線程運行這個方法時,就會暗示CPU自己已經(jīng)運行完成了,可以將時間片交給其它的線程System.out.println(Thread.currentThread().getName()+" "+i);}}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//得到主線程:
System.out.println(Thread.currentThread().getName());
// Ticket t1 = new Ticket(); //繼承Thread的寫法
// Ticket t2 = new Ticket();Thread t1 = new Thread(new Ticket()); //實現(xiàn)runnable接口的寫法Thread t2 = new Thread(new Ticket());t1.setDaemon(true);t2.setDaemon(true);//設(shè)置t1,t2為后臺線程,垃圾回收也是后臺線程t1.setPriority(1);//最高級別//默認(rèn)是5t2.setPriority(10);//最低級別//如果你期望某一個線程運行的更快些,或者更快完成,可以設(shè)置優(yōu)先級更高一些,就可能得到更多的CPU運行時間(并不絕對)t1.start();//3.用start()來調(diào)用run方法
t2.start();for(int i = 0 ;i<100 ;i++){try {System.out.println("主線程"+i);Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch block
e.printStackTrace();}}System.out.println("------------------------------------------------全部完成---------------");//主線程的代碼運行完成之后我們發(fā)現(xiàn)t1,t2繼續(xù)運行,主線程將繼續(xù)等待t1,t2完成,因為t1,t2是前臺線程//當(dāng)t1,t2設(shè)置為后臺線程后,主線程代碼一旦完成,就會停止一切后臺線程的運行
}}
?
轉(zhuǎn)載于:https://www.cnblogs.com/zousheng7018/archive/2012/10/19/2730827.html
總結(jié)
以上是生活随笔為你收集整理的线程Thread,Runnable的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑马程序员-4 String类和Stri
- 下一篇: 批量关闭电脑有害端口方法