进程是程序的一次动态执行过程,需要经历代码加载,代码执行,执行完毕的一个完整过程。
多进程操作系统能同时运行多个进程(程序),由于cpu具有备份时机制,所以每个进程都能循环获得自己的cpu时间片。由于cpu执行速度非常快,使得所有程序好像是在“同时运行”一样。
线程是比进程更小的单位,线程是在进程基础上进一步的划分。多线程是指一个进程在执行过程中可以产生多个更小的程序单元,这些更小的程序单元称之为线程。(java在运行中至少会启动两个线程:1,main线程 2,垃圾回收线程)
线程的实现:
一、继承Thread类
二、实现Runnable接口
两种多线程实现方式区别:1.继承Thread类会受到单继承限制,实现Runnable接口可以避免。2,一个类如果继承Thread类实现多线程,那么start()方法只能调用一次,而Runnable可以调用多次,用这以实现资源共享。
public class Test { public static void main(String[] args) { MyThread1 mt1 = new MyThread1(); mt1.start(); MyThread2 mt2 = new MyThread2(); Thread t2 = new Thread(mt2);//系统为线程自动命名,命名规则 Thread-XX Thread t3 = new Thread(mt2,"t333");//Thread类构造方法:为线程指定名称 t2.start(); t3.start(); mt1.run();//注意这个语句放置位置! } } //多线程一 ,继承Thread类 class MyThread1 extends Thread { public void run(){ for (int i = 0; i <= 3;i++) { System.out.println(Thread.currentThread().getName() + "运行" + i);//调用currentThread()静态方法及getName() } } } //多线程实现二,实现Runnable接口 class MyThread2 implements Runnable { public void run(){ for (int i = 0; i <= 3;i++) { System.out.println(Thread.currentThread().getName() + "运行" + i); } } } /* 1.实现Runnable可以调用多次start()方法,用以实现资源共享 */