Java多线程

线程︰

线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。 

简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程。

我们可以再电脑底部任务栏,右键----->打开任务管理器,可以查看当前任务的进程

多线程的功能:

通俗的讲,我们的代码都是由上至下依次执行,那么如何实现边打游戏边听歌呢,就可以使用多线程

并行与并发:

并行:指两个或多个事件在同一时刻发生(同时发生)比如:孙悟空可以分身出10个小猴子同时打妖精

并发:指两个或多个事件在同一时间段内发生。比如:快银在一分钟之内可以救10个人,他只是速度很快,并没有一下子救10人,而是一个一个的救,在这一分钟这个时间段里他自己完成了任务。

创建线程的方式总共有两种,一种是继承Thread类方式,一种是实现Runnable接口方式,

Thread类: 

public Thread(String name) :分配一个指定名字的新的线程对象。
public Thread(Runnable target) :分配一个带有指定目标新的线程对象。
public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字。
常用方法:

 public String getName() :获取当前线程名称。

public void start():导致此线程开始执行;Java虚拟机调用此线程的run方法。

public void run() :此线程要执行的任务在此处定义代码。

public static void sleep(long millis):使当前正在执行的线程以指定的毫秒数暂停 (暂时停止执行)· public static Thread current Thread() :返回对当前正在执行的线程对象的引用。

Java使用java.lang.Thread 类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。java使用线程执行体来代表这段程序流。 java中通过继承Thread类来创建并启动多线程的步骤如下:
1.定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把 run()方法称为线程执行体。

package Nine;

public class MyThread01 extends Thread{

        public void run(){
            for (int i=0;i<10000;i++){
                System.out.println("执行听歌.....");

            }
        }

}
package Nine;

public class MyThread02 extends Thread{
    public void run(){
        for (int i=0;i<10000;i++){
            System.out.println("执行打游戏.....");

        }
    }
}

 


2.创建Thread子类的实例,即创建了线程对象


        MyThread01 t1=new MyThread01();
        MyThread02 t2=new MyThread02();


3.调用start()方法启动线程,会自动调用run方法;


        t1.start();
        t2.start();

运行结果,交替出现

 Runnable接口:

采用 java.lang.Runnable 也是非常常见的一种,我们只需要重写run方法即可。步骤如下:
1.定义类实现Runnable接口

 2.重写run方法

 

 

3.在main方法中实例化Runnable接口的实现类对象;

 4.定义两个线程Thread类的对象,把Runnable接口的实现对象传入构造方法中;

5.线程类对象调用start方法,启动线程,自动执行Runnable接口的实现类中的run方法。

代码如下:

public class ThreadTest02 {
    public static void main(String[] args) {
        MyRunnable01 r1 = new MyRunnable01();
        MyRunnable02 r2 = new MyRunnable02();

        Thread t1=new Thread(r1);
        Thread t2=new Thread(r2);

        t1.start();
        t2.start();
    }

Thread类 Runnable接口的区别:
Thread类这种显示机制导致自定义的类没办法在继承别的类
Runnable接口的机制可以让自定义类既可以继承别的类也可以实现多线程。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值