Java多线程的实现方式-创新互联

Java的多线程是一个同时执行多个线程的过程。

十载建站经验, 网站制作、成都网站建设客户的见证与正确选择。成都创新互联公司提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。

线程是一个轻量级的子进程,是最小的处理单元。多线程和多进程都用于实现多任务处理。

但是,我们使用多线程而不是多进程,因为线程使用共享内存区域,它们不分配单独的内存区域以节省内存,而且线程之间上下文切换比进程花费的时间更少。

用一个东西之前,总得了解一下它的优点,这样才有动力看下去,这里我们先看一下多线程的优点。

Java多线程的优点

它不会阻塞用户,因为线程是独立的,你可以同时执行多个操作,举个栗子,你需要一个延时,等待三秒钟再进行接下来的操作,如果你使用单线程,它就真的等了你三秒,这三秒,啥都不干,啥都得放一边,就等。。。这明显是不可接受的。

你可以同时执行多个操作,节省时间。这里面又牵扯到CPU密集型和IO密集型的问题,可以看这篇文章:关于多线程的CPU密集型和IO密集型这件事

线程是独立的,死掉一个,不影响另一个。

继承Thread来实现多线程

Java提供了一个超类Thread给我们来extends,一旦继承了它,就可以通过override 其中的run方法,来实现多线程,具体代码如下:

package com.dingtao.test;
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();
    }
}

通过实现Runnable接口来实现

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

package com.dingtao.test;
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();
    }
}

通过Callable来实现一个Thread

具体代码如下:

package com.dingtao.test;
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如何实现多线程的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:Java多线程的实现方式-创新互联
本文来源:http://scyanting.com/article/djchoj.html