所谓线程,就是一种简单的进程,多线程可以实现多个运行,这样就丰富我我们的功能。
线程有以下几个状态:
可运行状态,运行状态,阻塞状态,销毁状态。
运行线程一般有两种方式,一种是继承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;
}
}
}
}