標籤:安全執行緒 安全 idt void image 應用 反射 tor 搶佔式
1-----------------------------------基本概念-------------------------------------------------
(1)多線程:一個應用程式有多條執行路徑
進程:正在執行的應用程式
線程:進程的執行單元,執行路徑
單線程:一個應用程式只有一條執行路徑
多線程:一個應用程式有多條執行路徑
多進程的意義?
提高CPU的使用率
多線程的意義?
提高應用程式的使用率
(2)多線程的實現方案
A:繼承Thread類
B:實現Runnable介面
(3)線程的調度
A:線程的調度
a:分時調度
b:搶佔式調度 (Java採用的是該調度方式)
(4)同步解決安全執行緒問題
A:同步代碼塊
synchronized(對象) {
需要被同步的代碼;
}
這裡的鎖對象可以是任意對象。
B:同步方法
把同步加在方法上。
這裡的鎖對象是this
C:靜態同步方法
把同步加在方法上。
這裡的鎖對象是當前類的位元組碼檔案對象(反射再講位元組碼檔案對象)
(5)線程的生命週期
2-----------------------------------基礎代碼-------------------------------------------------
(1)繼承Thread
/**
* 繼承Thread
* @author Administrator
*
*/
public class XC1 extends Thread {
String bb =null ;
public XC1(){}
public XC1(String aa){
super();
bb=aa;
}
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("線程1:"+1111+bb);
}
}
}
(2)實現Runnable介面
public class XC2 implements Runnable {
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("線程2:"+2222);
}
}
}
(3)調用
public class Demo1 {
public static void main(String[] args) {
XC1 xc1 = new XC1();
Thread th1 = new Thread(xc1);
th1.start();
XC2 xc2 = new XC2();
Thread th2 = new Thread(xc2);
th2.start();
}
}
JAVA多線程的總結