Java之线程入门

参考资料
1 Java线程:概念与原理
http://lavasoft.blog.51cto.com/62575/99150
2 Java 程序中的多线程
http://www.ibm.com/developerworks/cn/java/multithreading/
网上参考了很多资料,感觉不系统呀,还是自己写吧
1 进程
现在几乎每种操作系统都支持进程的概念 —— 进程就是在某种程度上相互隔离的、独立运行的程序,Windows为例,在任务管理器中你可查看到当前操作系统中各个进程的使用情况,如下:
Java之线程入门
其中你所看到:java.exe,qq.exe都是一个进程, 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程.
2 线程
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。其实你在不知不觉之中已经使用到了java的线程.如 AW T (抽象窗口工具箱 Abstract W i ndow i ng Tool ki t) )或 Sw i ng UI 工具箱、servl et 容器、应用程序服务器和 RM I(远程方法调用(Rem ote M ethod Invocati on)).
3 创建线程
在java创建线程有二种方式,继承Thread类或者实现Runnable 接口.
示例A 继承Thread类
public class MyThread extends Thread {
	
	@Override
	public void run() {
		System.out.println("咫尺天涯的第一个线程(Thread)启动了。。。");
	}

}

public class Main {
	
	public static void main(String[] args) {
	
		MyThread myThread = new MyThread();
		myThread.start();
		
	}
}

注意事项:因为它继承了Thread类,它就已经有了启动线程的方法,start(),你要做的事情放到run()方法里面去.
它有一个不好的地方是:你也可以不@Override,也行,那么就是什么事情也做不了
示例B 实现Runnable接口
public class MyRunnable implements Runnable {

	@Override
	public void run() {
		System.out.println("咫尺天涯的第一个线程(Runnable)启动了。。。");

	}
}

public class Main {
	
	public static void main(String[] args) {
		
		MyRunnable myRunnable = new MyRunnable();
		//myRunnable.start();此处编译报错,没有这个方法:start		
	}
}

注意事项:你的子类实现了Runnable接口,就没有启动线程的方法,也因为这样大家觉得直接继承Thread类会方便很多,在实际运用中,推荐大家使用实现Runnable接口来使用线程,因为它更具有面向对象的思想。如何启动呢,请看下面!
public class Main {
	
	public static void main(String[] args) {		
		
		MyThread myThread = new MyThread();
		Thread thread = new Thread(myThread);
		thread.start();
		
		MyRunnable myRunnable = new MyRunnable();		
		Thread runnable = new Thread(myRunnable);
		runnable.start();
		
	}
}

总结如下:它使用是是传递一个线程对象的方式给Thread类,实现启动线程.启动线程的方法是:start(),用户真正想要做的事情放到run()方法中去执行.

你可能感兴趣的:(java,thread,Runnable,线程)