1. 程式人生 > >多執行緒(join和yield)

多執行緒(join和yield)

/*
 * 一.join:
 * 當A執行緒執行到了b執行緒的join方法時,A執行緒就會等待,等B現成都執行完,A才會執行。

 * join可一用來臨時加入執行緒執行。

 *二. toString方法:
 * 返回執行緒的:執行緒名,優先順序,執行緒組。
 * 優先順序:搶資源的頻率。
 *執行緒可以具有的最高優先順序。 
 *static int MAX_PRIORITY (10)   
 *執行緒可以具有的最低優先順序。 
 *  static int MIN_PRIORITY (1)
 *  分配給執行緒的預設優先順序。 

 *static int NORM_PRIORITY (5)

 *三.static void yield() 
          暫停當前正在執行的執行緒物件,並執行其他執行緒。 
 */
class Demo implements Runnable
{
public void run()
{
for(int x=0;x<70;x++)
{
System.out.println(Thread.currentThread().toString()+"----"+x);
Thread.yield();
}
}
}
public class JoinDemo {
public static  void main(String args[]) throws InterruptedException
{
Demo d=new Demo();
Thread t1=new Thread(d);
Thread t2=new Thread(d);
t1.start();
//t1.setPriority(Thread.MAX_PRIORITY);
t2.start();
//t1.join();
for(int x=0;x<80;x++)
{
//System.out.println("main----"+x);
}
System.out.println("over");
}

}

//開發中使用多執行緒,為了同時執行程式碼,如:



public class ThreadTest {
public static void main(String args[])
{
new Thread()
{
public void run()
{
for(int x=0;x<100;x++)
{
System.out.println(Thread.currentThread().getName()+"---"+x);
}
}
}.start();


for(int x=0;x<100;x++)
{
System.out.println(Thread.currentThread().getName()+"---"+x);
}
Runnable r=new Runnable()
{
public void run()
{
for(int x=0;x<100;x++)
{
System.out.println(Thread.currentThread().getName()+"---"+x);
}
}
};
new Thread(r).start();
}
}