java中的多執行緒 內部類實現多執行緒 Runable介面的實現
/*
java.lang.Thead
java中的多執行緒 類從 Thread 覆蓋run方法 呼叫start啟動x執行緒
java中如果執行緒只剩後臺執行緒那麼程式終止執行 setDaemon設定為後臺執行緒 當進城中只剩下後臺執行緒
java 中預設執行緒優先順序是5 MAX_PRIORITY MINI_PRIORITY NORM_PRIORITY 10 1 5
當優先順序10的時候執行緒始終執行 我們可以線上程的任何時候 設定優先順序
另外一種實現多執行緒的方法是實現 Runable介面 這樣的好處是可以共享一個變數 。。
看下面程式碼
*/
class MultiThread
{
public static void main(String []args)
{
//NewThread nt=new NewThread();
/* nt.setPriority(Thread.MAX_PRIORITY); //設定最大優先順序執行緒將一直執行
// nt.setDaemon(true);//設定執行緒為後臺執行緒 如果執行緒只剩下後臺執行緒那麼程式 退出執行
nt.start();//啟動執行緒
while(true)
System.out.println("main:"+Thread.currentThread().getName());
*/
// ThreadOne th=new ThreadOne();
/* new Thread(th).start();
new Thread(th).start();
new Thread(th).start();
new Thread(th).start();
*/
//內部類實現多執行緒
ThreadTwo th=new ThreadTwo();
th.getInner().start();
th.getInner().start();
th.getInner().start();
th.getInner().start();
}
}
class NewThread extends Thread //java 中的多執行緒要從Thread類派生
{
public void run() //在我們的執行緒類中必須覆蓋run方法
{
while(true)
{
System.out.println(getName());
// Thread.yield(); //執行緒暫停執行 對於單CPU可以實現暫停 但是對於多CPU效果就不同了
}
}
}
class ThreadOne implements Runnable
{
int index=0;
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"+"+index++);
}
}
}
//內部類實現多執行緒
class ThreadTwo
{
int index=0;
private class Inner extends Thread
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"+"+index++);
}
}
}
Thread getInner()
{
return new Inner();
}
}