1. 程式人生 > >java多執行緒知識(1)

java多執行緒知識(1)

基礎概念

1.執行緒和程序:

  1. 程序有自己的獨立空間,而執行緒共享程序的空間
  2. 執行緒通訊方便,同一程序的執行緒共享全域性變數,靜態資料
  3. 多程序更健壯,多執行緒只要有一個執行緒死掉,整個程序也死

2.同步和非同步:同步必須等該方法的呼叫返回
3.並行和併發:併發只是兩個任務切換速度快
4.執行緒安全:當多個執行緒訪問一個類時,這個類始終正確,則這個類是執行緒安全的(經常用鎖)
5.一個物件有一把鎖,多個執行緒有多個鎖。若要多個執行緒範文一個鎖,則static

public class MultiThread {

    private static
int num = 200; public static synchronized void printNum(String threadName, String tag) { if (tag.equals("a")) { num = num - 100; System.out.println(threadName + " tag a,set num over!"); } else { num = num - 200; System.out.println(threadName + " tag b,set num over!"
); } System.out.println(threadName + " tag " + tag + ", num = " + num); } public static void main(String[] args) throws InterruptedException { final MultiThread multiThread1 = new MultiThread(); final MultiThread multiThread2 = new MultiThread(); new
Thread(new Runnable() { public void run() { multiThread1.printNum("thread1", "a"); } }).start(); new Thread(new Runnable() { public void run() { multiThread2.printNum("thread2", "b"); } }).start(); } }