进程与线程
进程
一个进程就是一个执行中的程序,每一个进程的内部数据和状态都是完全独立。
是程序运行的基本单位。
线程
程序中单个唾弃的流控制称为线程。
多线程是指单个进程中可以运行多个不同的线程,执行不同的任务。
差别
线程是划分比进程更小的执行单位。
进程有专用的内存区域,线程只有共享内存单元。
继承Thread与继承Runnable的区别
class Thread1 extends Thread //继承Thread { public void run() { for(int i=0;i<100;i++) System.out.println("Thread1 is running."); } } class ThreadDemo { public static void main(String[] args) { Thread1 t=new Thread1(); t.start(); for(int i=0;i<100;i++) { System.out.println("main is running."); } } }
class Thread1 implements Runnable //继承Runnable { private int tickets=100; public void run() { while(true) if(tickets>0) System.out.println(Thread.currentThread().getName()+" sale No."+tickets--); } } class ThreadDemo { public static void main(String[] args) { Thread1 t=new Thread1(); new Thread(t).start(); new Thread(t).start(); new Thread(t).start(); } }
区别是继承Runnable可以创建多个线程共享资源。
后台线程
对于java而言,有一个前台在运行进程就不会结束,只有一个后台程序运行进程就会结束。
class Thread1 implements Runnable { public void run() { while(true) { System.out.println("Thread1 is running."); } } } class ThreadDemo { public static void main(String[] args) { Thread1 t=new Thread1(); Thread tt=new Thread(t); tt.setDaemon(true); //设置后台线程 tt.start(); } }