在Java中,有幾種常見(jiàn)的方式可以控制多線程的啟動(dòng)與停止。
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// 線程執(zhí)行的代碼
}
});
thread.start(); // 啟動(dòng)線程
thread.interrupt(); // 停止線程
Runnable runnable = new Runnable() {
@Override
public void run() {
// 線程執(zhí)行的代碼
}
};
Thread thread = new Thread(runnable);
thread.start(); // 啟動(dòng)線程
thread.interrupt(); // 停止線程
volatile boolean isRunning = true; // 共享變量
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (isRunning) {
// 線程執(zhí)行的代碼
}
}
});
thread.start(); // 啟動(dòng)線程
isRunning = false; // 停止線程
需要注意的是,以上方法都是通過(guò)協(xié)作的方式來(lái)控制線程的啟動(dòng)與停止,即線程自己決定何時(shí)退出。另外,停止線程的方法不是強(qiáng)制終止線程,而是通過(guò)設(shè)置標(biāo)志位或發(fā)送中斷信號(hào)的方式來(lái)請(qǐng)求線程停止。線程在合適的時(shí)機(jī)檢查這些條件,并主動(dòng)退出循環(huán),從而停止線程的執(zhí)行。