所谓线程,就是一种简单的进程,多线程可以实现多个运行,这样就丰富我我们的功能。
线程有以下几个状态:
可运行状态,运行状态,阻塞状态,销毁状态。
运行线程一般有两种方式,一种是继承thread类重写run方法。第二种是写Runnable然后重写run方法实现线程。
下面是分别两类方法:
1:
package Test; public class dxcheng { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Cat1 cat1=new Cat1(); // 启动线程,启用run函数,进入可运行状态 cat1.start(); } } class Cat1 extends Thread{ int times=0; public void run(){ while(true){ // 休眠1000毫秒 try { // 进入阻塞状态 Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Hello"+times); times++; if(times==10){ // 退出线程 break; } } } }
2:
package Test; public class runnable { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Dogs dog1=new Dogs(); Thread t=new Thread(dog1); t.start(); } } class Dogs implements Runnable{ int times=0; public void run(){ while(true){ try { Thread.sleep(1000); times++; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("您好"+times); if(times==10){ break; } } } }
最后就是实现多线程交替进行工作:
package Test; public class runnable { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Dogs dog1=new Dogs(); Thread t=new Thread(dog1); Pig pig1=new Pig(); Thread m=new Thread(pig1); t.start(); m.start(); } } class Dogs implements Runnable{ int times=0; public void run(){ while(true){ try { Thread.sleep(1000); times++; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("我是狗"+times); if(times==10){ break; } } } } class Pig implements Runnable{ int times=0; public void run(){ while(true){ try { Thread.sleep(1500); times++; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("我是猪:"+times); if(times==10){ break; } } } }
时间: 2024-11-29 00:30:33