标签:
一.概念
1.进程
进程是一个独立运行的程序,一个进程里可以包含多个线程。
2.线程
线程是进程中的执行流程,多线程就是多个并发执行的线程。
一个线程则是进程中的执行流程,一个进程中可以同时包括多个线程,每个线程也可以得到一小段程序的执行时间,这样一个进程就可以具有多个并发执行的线程。在单线程中,程序代码按调用顺序依次往下执行,如果需要―个进程同时完成多段代码的操作,就需要产生多线程。
如图为Windows操作系统的执行模式:
二.实现线程的两种方式
在Java中主要提供了两种方式实现线程,分别为继承java.lang.Thread类与实现java.lang.Runnable接口。
1.继承Thread
注意:启动一个新的线程,不是直接调用Thread子类对象的run()方法,而是调用Thread子类的start()方法,Thread类的start()方法产生一个新的线程,该线程运行Thread子类的run()方法。
线程代码演示:
package com.hanqi.thread; //支持多线程 //1.继承Thread //2.覆盖run方法 public class TestThread1 extends Thread{ //重写 public void run() { for(int i=0;i<10;i++) { System.out.println(i); try { //线程的休眠方法(毫秒) Thread.sleep(1000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } }
package com.hanqi.thread; public class TestThread2 implements Runnable{ @Override public void run() { for(int i=0;i<10;i++) { System.out.println(i); try { //线程的休眠方法(毫秒) Thread.sleep(1000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } }
package com.hanqi.thread; public class Test1 { public static void main(String[] args) { // for(int i=0;i<10;i++) // { // System.out.println(i); // // try // { // //线程的休眠方法(毫秒) // Thread.sleep(1000); // } // catch (InterruptedException e) // { // // TODO 自动生成的 catch 块 // e.printStackTrace(); // } // } TestThread1 tt1=new TestThread1(); //启动多线程 tt1.start(); TestThread1 tt2=new TestThread1(); //启动多线程 tt2.start(); //启动实现接口方式的多线程 Thread t3=new Thread(new TestThread2()); t3.start(); } }
标签:
原文地址:http://www.cnblogs.com/cycanfly/p/5281760.html