线程创建方式

一段程序如果启动多个线程执行,同样的的程序执行时间大大缩减。

 


前言

如果一个程序(一个进程)启动多个线程,并发的执行程序,大大缩短执行时间。


一、进程与线程是什么?

进程:进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。

线程:线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。

二、创建步骤

1.继承Thread

代码如下(示例):

class A extends Thread{

     重写run方法

}

A a = new A();

a.start();

2.实现Runnable接口

代码如下(示例):

实现Runnable接口

class A implements Runable{

     重写run方法

}

A a = new A();

Thread t = new Thread(a);

t.start();

2.匿名内部类

代码如下(示例):

new Thread(new Runnable(){

     public void run(){

     }

}).start();

Thread t = new Thread(new Runnable(){

     public void run(){

     }

});

t.start();


总结

  • 采用继承Thread类方式
    • 优点:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获得当前线程。
    • 缺点:因为线程类已经继承了Thread类,所以不能再继承其他的父类。
  • 采用实现Runnable接口方式:
    • 优点:线程类只是实现了Runable接口,还可以继承其他的类。在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。
    • 缺点:编程稍微复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值