码迷,mamicode.com
首页 > 编程语言 > 详细

java中多线程的基本理解以及运行机制

时间:2015-06-21 09:31:31      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:多线程   java   runnable   thread   

所谓线程,就是一种简单的进程,多线程可以实现多个运行,这样就丰富我我们的功能。

线程有以下几个状态:

可运行状态,运行状态,阻塞状态,销毁状态。

运行线程一般有两种方式,一种是继承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;
			}
		}
	}
}



java中多线程的基本理解以及运行机制

标签:多线程   java   runnable   thread   

原文地址:http://blog.csdn.net/mycodedream/article/details/46574657

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!