线程:线程可以方便的控制方法的执行。如循环执行方法,设置方法的执行时间间隔,方法的停止执行等,在一些开发项目中经常使用。java虚拟机允许应用程序并发地运行多个执行线程,多个线程共享进程的内存,大大提高了执行效率和cpu的利用率。
线程概述:现在的操作系统是多任务操作系统,多线程是实现多任务的一种方式。程序,进程和线程,他们之间到底有什么关系呢?程序是一段静态的代码,进程是程序的一次动态执行的过程。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程,线程是比进程更小的执行单位。比如java.exe进程中可以运行多个线程,线程总是属于某个进程,进程中的多个线程共享进程的内存。“同时”进行是人的感觉,在线程之间实际上是轮换执行。在基于线程的多个任务环境中,线程是最小的单位。
线程的创建与启动
创建线程有两种方法。一种方法是将类声明为Thread的子类,该子类应重写Thread类的run()方法。
class A extends Thread{
int a;
public A(int a){
this.a=a;
public void run(){
...//此处为线程执行的主体部分
}
...}
启动该线程的方法如下:
A one=new A(12);
one.start();//使该线程开始执行,java虚拟机调用该线程的run()方法
利用extends Thread方式创建线程举例:
public class TestThread Thread{
public TeatThread(String name){
//构造方法
super(name);
}
public void run(){
for(int i=0;i<5;i++){
for(long k=0;k<100000000;k++);//延迟
System.out.println(this.getName()+":"+i);
}
}
public static void main(String []args){
Thread t1=new TestThread("张三");
Thread t2=new TeatThread("张思");
t1.start();//启动线程
t2.start();
}
}
创建第二种方法是声明实现Runnable接口的类,该类实现Runnable接口,类必须定run()方法。
class B implements Runnable{
int b;
public B(int b){
this.b=b;