1,线程和进程的基本概念:
进程是操作系统结构的基础,是程序在一个数据集和上运行的过程,它是系统进行资源分配和调度的一个独立单位。
线程是进程的组成部分,是进程的执行单元,一个进程可以拥有多个线程。
线程可以拥有自己的堆栈、自己的程序计数器和自己的局部变量,但不拥有系统资源,它与父进程的其他线程共享该进程所有的全部资源。
2,线程的两种创建方式以及启动
第一种,继承Thread类,下面图是源码,Thread类实现了Runnable接口。
具体步骤:定义Thread子类,重写run()方法。创建Thread子类实例,即创建线程对象,接着调用start()方法。
第一步:
public class MyThread extends Thread {
private int i;
public MyThread(int i){
super();
this.i=i;
}
public void run(){
System.out.println(i);
}
}
private int i;
public MyThread(int i){
super();
this.i=i;
}
public void run(){
System.out.println(i);
}
}
public class MyThreadTest {
第二步
public static void main(String[] args) {
MyThread m1 = new MyThread(1);
MyThread m2 = new MyThread(2);
MyThread m3 = new MyThread(3);
MyThread m4 = new MyThread(4);
MyThread m5 = new MyThread(5);
MyThread m6 = new MyThread(6);
m1.start();
m2.start();
m3.start();
m4.start();
m5.start();
m6.start();
}
}
第二步
public static void main(String[] args) {
MyThread m1 = new MyThread(1);
MyThread m2 = new MyThread(2);
MyThread m3 = new MyThread(3);
MyThread m4 = new MyThread(4);
MyThread m5 = new MyThread(5);
MyThread m6 = new MyThread(6);
m1.start();
m2.start();
m3.start();
m4.start();
m5.start();
m6.start();
}
}
第二种,实现Runnable()接口
定义Runnable接口的实现类,重写该接口的run()方法,接着创建Runnable的实现类实例,作为Thread的target创建Thread对象,该Thread对象才是真正的线程。