Leo Wang's Notepad

关于Java Thread的一些认识

最近为了考取Java 7的Gold资格而补课,多线程这一块看了好长一段时间才算有点头绪。

下面几点算是心得吧。明白这些东西之后,join()也差不多可以理解了。

  • 主线程和主线程生成的子线程是两个独立的东西。start()之后都是各自奔向终点。
  • 如果子线程跑得快,主线程无法对它进行interrupt()操作。
    因为人家已经结束了,你再发号施令已经晚了。
  • 被interrupt()的子线程不会就此终止,而是会恢复原来的执行。
public class Sample11_5 {

	public static void main(String[] args) {

		try {
			ThreadA a = new ThreadA();
			a.start();
			System.out.println("main : sleep start.");
			Thread.sleep(1000);
			System.out.println("main : sleep end.");
			a.interrupt();
		} catch (InterruptedException e) {
			
		}
	}
	
}

class ThreadA extends Thread{
	@Override
	public void run() {
		try {
			System.out.println("Thread A : sleep start");
			Thread.sleep(5000);
			System.out.println("Thread A : sleep end");
		} catch (InterruptedException e) {
			System.out.println("Catch Thread A interrupted");
		}
		System.out.println("Thread A finished.");
	}
}

执行结果如下:

main : sleep start.
Thread A : sleep start
main : sleep end.
Catch Thread A interrupted
Thread A finished.
Tagged on: ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注