java多线程001-线程基本概念
1、了解进程与线程的概念。
(1)进程就是一个正在执行中的程序(例如:qq)。
(2)每一个进程执行都有一个执行顺序,该顺序是个执行路径
,或者叫一个控制单元
(3)线程就是进程中一个独立的控制单元,就是一条执行路径。
(4)线程控制着进程的执行。
(5)java vm 启动的时候会有一个进程java.exe,该进程中至少有一个线程负责java程序的执行,
而且这个线程运行的代码存在于main方法中,该线程称之为主线程。
(5)jvm是多线程的,垃圾回收、运行主线程等等
(6)在某一时刻,只能有一个程序在运行(多核除外)。
(7)多线程随机性,谁抢到谁执行,至于执行多长,cpu来决定
2、java创建线程的两种方式:继承Thread与实现Runnble
(1)今天先说Thread,见下面例子:
class DemoThread extends Thread {
public DemoThread(String name) {
super(name);
}
public void run() {//重写Thread类的run方法,把自己需要实现的东西,写进去
System.out.println("刘峰 run");
for(int i = 0 ; i < 500; i++) {
System.out.println(Thread.currentThread().getName()+"------"+i);
}
}
}
class Test {
public static void main(String[] args) {
DemoThreadd = newDemoThread1("liufeng");
DemoThreadd = newDemoThread2("刘峰");
d1.start();
d2.start();
}
}
(2)run方法存储的是线程要执行的代码
(3)启动线程,调用start方法(调用run方法,不是启动线程,只是方法调用)
(4)static Thread currentThread():获取正在运行的线程的线程对象(这是Thread类的静态方法)
(5)main也是一个线程,是主线程,由jvm调用
(6)线程的生命周期:
从新浪博客搬过来的:http://blog.sina.com.cn/s/blog_818367a30102uwyc.html