java多线程实现方式,怎样实现java多线程?

KLQ 2020-08-17 14:46:49 java常见问答 7994

下面要给大家讲到的就是和java多线程相关的内容,那么具体来说要怎样才能够实现java多线程呢?一起通过下面的文章来了解一下吧。

具体来说实现java多线程可以有三种方式!

1、继承Thread来实现多线程

java提供了一个超类Thread给我们来extends,一旦继承了它,就可以通过override其中的run方法,来实现多线程,

代码:

import java.io.*;
public class MyThread extends Thread
{
    @Override
    public void run()
    {
        System.out.println(Thread.currentThread()
            .getName());
    }
    public static void main(String[] args) throws IOException
    {
        Thread t1 = new MyThread();
        Thread t2 = new MyThread();
        t1.start();
        t2.start();
    }
}

2、通过实现Runnable接口来实现

对于一些类来说,他们不可以继承Thread来实现多线程,因为Java规定同时只能继承一个超类,但是却可以同时实现多个接口,所以Runnable就更格外受欢迎。

具体代码:

import java.io.*;
public class MyThread implements Runnable
{
    @Override
    public void run()
    {
        System.out.println(Thread.currentThread()
            .getName());
    }
    public static void main(String[] args) throws IOException
    {
        Thread t1 = new Thread(new MyThread());
        Thread t2 = new Thread(new MyThread());
        t1.start();
        t2.start();
    }
}

上面的这种的话是直接定义了类来实现Runnable方法,其实的话还能够变种为匿名内部类的方法来创建出一个Thread,下面是具体代码:

import java.io.*;
public class MyThread
{
    public static void main(String[] args) throws IOException
    {
        Thread t1 = new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                System.out.println(Thread.currentThread()
                    .getId());
            }
        });
        Thread t2 = new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                System.out.println(Thread.currentThread()
                    .getId());
            }
        });
        t1.start();
        t2.start();
    }
}

3、通过Callable来实现一个Thread。

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class MyThread implements Callable
{
    public static void main(String[] args)
    {
        MyThread t1 = new MyThread();
        FutureTask future = new FutureTask(t1);
        new Thread(future, "呵呵哒")
            .start();
    }
    @Override
    public Integer call() throws Exception
    {
        System.out.println(Thread.currentThread()
            .getName());
        return null;
    }
}

对于如何实现java多线程你都清楚了吗?更多java编程常见问题请继续来本站进行了解吧。

推荐阅读:

java多线程并发程序执行慢有什么原因?该怎么解决?

java多线程创建方式三callable的实现

java多线程任务可以放在循环里吗?