在Java中,一个应用程序对应着一个JVM实例(JVM进程),一般来说名字默认为java.exe或者javaw.exe(windows下可以通过任务管理器查看)。
Java采用的是单线程编程模型,即在我们自己的程序中如果没有主动创建线程的话,只会创建一个线程,通常称为主线程。
但是,虽然只有一个线程来执行任务,不代表JVM中只有一个线程,JVM实例在创建的时候,同时会创建很多其他的线程(比如垃圾收集器线程)。
一个进程包括多个线程,这些线程是共同享有进程占有的资源和地址空间的。进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位。
一、线程创建
// 继承Thread class MyThread extends Thread{ private static int num = 0; public MyThread(){ num++; } @Override public void run(){ System.out.println("主动创建的第"+num+"个线程"); } } public class Test{ public static void main(String[] args){ MyThread thread = new MyThread(); thread.start(); } } // 实现Runnable接口 class MyRunnable implements Runnable{ public MyRunnable(){} @Override public void run(){ System.out.println("子线程ID:" + Thread.currentThread().getId()); } } public class Test{ public static void main(String[] args){ MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.start(); } }
二、Thread 类
1、线程的状态
创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting、waiting、消亡(dead)
原文:http://www.cnblogs.com/hesier/p/5628937.html