您的位置:首页 > 编程语言 > Java开发

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

2017-10-17 21:48 239 查看
线程的创建有三种方法

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的利用率

改善程序结构。将即长久有复杂的进程分为多个线程,独立运行,利于理解和修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: