进程:是一个程序在其自身地址空间的一次执行活动,进程是资源申请、调度和独立运行的单位,因此他使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此它不占用系统的运行资源。
线程:是程序中的一个单一的连续控制流程,一个线程可以拥有多个线程 。线程中的run()就像Java的main()一样,可以理解为一个线程启动运行的入口函数。
创建一个线程的方式有两种,一种是继承Thread类,还有就是实现Runnable 接口,两者都要重写run()方法。
下面用简单实例来写个多线程例子
上述代码只是简单描述什么是多线程。
多线程还包括 同步等一些问题。
下面附件图片包含多线程的各种状态。
线程:是程序中的一个单一的连续控制流程,一个线程可以拥有多个线程 。线程中的run()就像Java的main()一样,可以理解为一个线程启动运行的入口函数。
创建一个线程的方式有两种,一种是继承Thread类,还有就是实现Runnable 接口,两者都要重写run()方法。
下面用简单实例来写个多线程例子
public class MyThread extends Thread {
private long number;
public void run() {
for (long i = 0; i <2500000000l; i++) {
number++;
}
}
public static void main(String[] args) {
MyThread thread = new MyThread();
long start=System.currentTimeMillis();
thread.start();
long number=0;
for (long i = 0; i <2500000000l; i++) {
number++;
}
long end=System.currentTimeMillis();
System.out.println(end-start);
System.out.println(thread.number+number);
}
}
上述代码只是简单描述什么是多线程。
多线程还包括 同步等一些问题。
下面附件图片包含多线程的各种状态。