Java程序中的单任务流。我们在相对独立的线程中实现每一项任务。main是主线程 同时完成多项任务。程序执行的步骤是有序的,但很多时候,我们需要并发地处理问题,而不是按顺序处理问题 【多线程】线程也被视为对象,多线程是指多线程对象 [API支持线程类]java.lang.Thread。Thread类的对象是线程对象 练习一、打印线程对象初始化
package pkg3;public class test3 implements Runnable{ Thread th1; public test3() {//2 th1=new Thread(this);///2-1初始化线程对象 th1.start();//2-2启动线程对象,Run方法自动调用 } public static void main(String[] args){ new test3();//1.从主线程开始,调用结构方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub System.out.println(“线程运行”);//3-1打印线程,“运行”}
线程的生命周期:new、runnable、not runnable、dead
package pkg3;public class test3 implements Runnable{ Thread th1; public test3() {//2 th1=new Thread(this);///2-1初始化线程对象 th1.start();//2-2启动线程对象,Run方法自动调用 } public static void main(String[] args){ new test3();//1.从主线程开始,调用结构方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub while(true) { System.out.println(“线程运行”);//3-1打印线程,“运行了” try { th1.sleep(500);//强制睡眠500毫秒,进入非运行状态nottnott进入非运行状态 runnable(睡眠、堵塞、排队) } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}}
练习三、多线程
package pkg3;public class test3 implements Runnable{ Thread th1,th2; public test3() {//2 th1=new Thread(this);///2-1初始化线程对象 th2=new Thread(this); th1.start();//2-2启动线程对象,Run方法自动调用 th2.start(); } public static void main(String[] args){ new test3();//1.从主线程开始,调用结构方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub /*while(true) { System.out.println(“线程运行”);//3-1打印线程,“运行了” try { th1.sleep(500);//强制睡眠500毫秒,进入非运行状态nottnott进入非运行状态 runnable(睡眠、堵塞、排队) } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }*/ Thread th=Thread.currentThread();///这种方法可以判断进入run方法的线程对象 if(th==th1) { System.out.println(“线程1运行”); } if(th==th2) { System.out.println(“线程2运行”); }}}