Java--多线程的创建(三种方式)

线程的创建有三种方法

1,实现一个Runable接口的类 并重写run()f方法

package shangguigu.com.day17;
/**
 * 
 * 打印1--100之间的偶数
 * @author Administrator
 *
 */
public class Thread02 implements Runnable{
//1、创建一个实现Runnable接口的类 
@Override
//2.重写run()方法
public void run() {
for(int i = 0;i<100;i++) {
if(i % 2 == 0) {
System.out.println(Thread.currentThread().getName()+": "+i);
}
try {
//线程休眠1秒
Thread.sleep(1000);
}catch(Exception ex) {
ex.printStackTrace();
}
}

}


}




//测试类


package shangguigu.com.day17;


import org.junit.Test;


/**
 * 
 * 
 * @author Administrator
 *
 */
public class ThreadTest01 {
@Test
public void test01() {
//实例化实现Runnable接口的类  
Thread02 thread02 = new Thread02();
//创建Thread 对象  
Thread t1 = new Thread(thread02);
//给线程命名
t1.setName("线程1");
//启动线程
t1.start();
Thread t2 = new Thread(thread02);
t2.setName("线程2");
t2.start();

}
}


2.第二种方式

创建一个类继承Thread 并重写run()方法

//创建一个继承与Thread的 子类
public class Thread02 extends Thread{

//重写Thread类的run() 方法 在该方法里面实现此线程要完成的功能
public void run() {
for(int i = 0;i<100;i++) {
System.out.println(Thread.currentThread().getName()+i+" ");
}
}
}
//测试类
public class TestThread01 {
@Test
public void test01() {
//创建子类的对象
Thread02 thread02 = new Thread02();
//调用线程的start() 启动线程,调用相应的run();
thread02.start();
for(int i = 0;i<100;i++) {
System.out.println(Thread.currentThread().getName()+i+" ");
}
}
}

两种方式的联系;

1.联系:puiblic  class  Thread  implements Runable

2.实现的方式优于继承的方式  实现的方法避免了Java中的单继承的局限性  如果多个线程操作同一个数据 更适合实现的方法



多线程的优点:

提高应用程序的响应,对图形化界面更有意义 可增强用户的体验。

提高计算机CPU的利用率

改善程序结构。将即长久有复杂的进程分为多个线程,独立运行,利于理解和修改


你可能感兴趣的:(java基础)