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