• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java面向對象
    Java異常
    Java數組
    Java常用類
    Java集合
    Java IO流
    Java線程
    Java反射
    Socket編程
    Java注解開發
    Java GoF設計模式
    HashMap
    Java內存模型
    Java線性表

    Java線程基礎操作

     

     

    線程的常用操作

     

    static int

    activeCount() 返回活動線程數量

    static Thread

    currentThread() 返回當前線程

    ClassLoader

    getContextClassLoader() 返回類加載器

    long

    getId() 返回線程的id,每個線程都有唯一 的id

    String

    getName() 返回線程名稱.

    int

    getPriority() 返回線程優先級

    Thread.State

    getState() 返回線程狀態

    void

    interrupt() 中斷線程.

    static boolean

    interrupted() 判斷線程的中斷狀態

    boolean

    isAlive() 判斷線程是否終止

    boolean

    isDaemon() 是否為守護線程

    boolean

    isInterrupted() 判斷線程的中斷狀態

    void

    join() 線程合并

    void

    run() 

    void

    setDaemon(boolean on) 設置線程為守護線程

    void

    setName(String name) 設置線程名稱

    void

    setPriority(int newPriority) 設置優先級

    static void

    sleep(long millis)線程睡眠(休眠)

    void

    start() 開啟新的線程

    void

    stop() 線程終止

    String

    toString() 

    static void

    yield() 線程讓步

     

    package com.wkcto.chapter07.method;
    /**
     * 演示線程的基本操作
     * 			Thread.currentThread()		返回當前線程
     * 			t1.getName()					返回線程名稱, 線程默認名稱 : Thread-0 / Thread-1 
     * 			t1.setName("t1")				設置線程名稱
     * 			t1.isAlive()					判斷線程是否終止
     * 			Thread.activeCount()			活動線程的數量
     * @author 蛙課網
     *
     */
    public class Test01 {
    	public static void main(String[] args) {
    		Thread t1 = new Thread( new Runnable() {
    			@Override
    			public void run() {
    				for( int i = 1; i<=100; i++){
    //					System.out.println("sub thread: " + i);
    					System.out.println( Thread.currentThread().getName() + "==>" + i);
    				}
    			}
    		});	
    		t1.setName("t1");
    		t1.start();
    		
    		new Thread( new Runnable() {
    			@Override
    			public void run() {
    				for( int i = 1; i<=100; i++){
    					System.out.println( Thread.currentThread().getName() + "====>" + i);
    				}
    			}
    		},  "t2").start();
    		
    		System.out.println("11 : " +  Thread.activeCount() );  		//活動線程的數量
    		
    		//main線程
    		for( int i = 1; i<=100; i++){
    			System.out.println( Thread.currentThread().getName() + "------->" + i);
    		}
    		
    		System.out.println( "t1 alive: " + t1.isAlive());
    		
    		System.out.println("22 : " +  Thread.activeCount() );  		//活動線程的數量
    	}
    }

     

    package com.wkcto.chapter07.method;
    /**
     * 守護線程
     * 		為其他線程服務的, 不能單獨運行 , 當JVM中只有守護線程時, JVM退出 
     * @author 蛙課網
     *
     */
    public class Test02 {
    
    	public static void main(String[] args) {
    		Thread t1 = new Thread(new Runnable() {
    			@Override
    			public void run() {
    				for (int i = 1; i <= 100; i++) {
    					System.out.println(Thread.currentThread().getName() + "--> " + i);
    				}
    			}
    		} , "t1");
    		t1.start();
    		
    		Thread t2 = new Thread(new Runnable() {
    			@Override
    			public void run() {
    				for (int i = 1; i <= 500; i++) {
    					System.out.println(Thread.currentThread().getName() + "----> " + i);
    				}
    			}
    		} , "t2");
    		t2.setDaemon( true ); 		//設置線程為守護線程
    		t2.start();
    		
    		//main線程
    		for (int i = 1; i <= 100; i++) {
    			System.out.println(Thread.currentThread().getName() + "==> " + i);
    		}
    	}
    
    }

     

    package com.wkcto.chapter07.method;
    /**
     * 判斷線程的狀態
     * @author 蛙課網
     *
     */
    public class Test03 {
    
    	public static void main(String[] args) {
    		Thread t1 = new Thread(new Runnable() {
    			@Override
    			public void run() {
    				for (int i = 1; i <= 100; i++) {
    					System.out.println(Thread.currentThread().getName() + "--> " + i);
    				}
    			}
    		});
    		
    		System.out.println("111: " + t1.getState());	 //111: NEW 新建狀態,剛剛創建了線程對象	
    		t1.start();
    		System.out.println("222: " + t1.getState());	//222: RUNNABLE 可運行狀態,就緒狀態, 調用了start()
    		
    		//main線程
    		for (int i = 1; i <= 300; i++) {
    			System.out.println(Thread.currentThread().getName() + "--> " + i);
    		}
    		
    		System.out.println("333: " + t1.getState()); 	//333: TERMINATED 終止狀態,線程已結束	
    		
    	}
    
    }

     

     


     

    線程的生命周期

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏