Java多线程技术教程

2024-12-29 0 611

Java多线程技术教程

掌握Java中的多线程编程,提升并发处理能力

一、多线程基本概念

多线程是Java并发编程的重要概念之一,它允许一个应用程序同时执行多个任务。多线程可以显著提高应用程序的响应性和吞吐量。

二、线程创建方式

Java中创建线程主要有三种方式:继承Thread类、实现Runnable接口和使用Callable及Future接口。

2.1 继承Thread类

通过继承Thread类并重写其run方法,可以创建一个新的线程。


public class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Thread is running");
    }

    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.start();
    }
}
        

2.2 实现Runnable接口

实现Runnable接口并将其实例传递给Thread对象,可以避免Java单继承的局限。


public class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("Runnable is running");
    }

    public static void main(String[] args) {
        Thread thread = new Thread(new MyRunnable());
        thread.start();
    }
}
        

2.3 使用Callable及Future接口

Callable接口类似于Runnable,但它可以返回结果或抛出异常。Future接口用于获取Callable任务的结果。


import java.util.concurrent.*;

public class MyCallable implements Callable {
    @Override
    public String call() throws Exception {
        return "Callable result";
    }

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService executor = Executors.newSingleThreadExecutor();
        Future future = executor.submit(new MyCallable());
        System.out.println("Future result: " + future.get());
        executor.shutdown();
    }
}
        

三、案例讲解:多线程实现计数器

下面是一个简单的多线程计数器示例,展示了如何使用多个线程来更新一个共享变量。


public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }

    public static void main(String[] args) throws InterruptedException {
        Counter counter = new Counter();
        Thread[] threads = new Thread[10];

        for (int i = 0; i  {
                for (int j = 0; j < 1000; j++) {
                    counter.increment();
                }
            });
            threads[i].start();
        }

        for (Thread thread : threads) {
            thread.join();
        }

        System.out.println("Final count: " + counter.getCount());
    }
}
        

在这个示例中,我们创建了一个Counter类,其中包含一个同步的increment方法和一个getCount方法。然后,我们创建了10个线程,每个线程对计数器进行1000次递增操作。最后,我们等待所有线程完成并输出最终计数结果。

Java多线程技术教程
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本站尊重知识产权,如知识产权权利人认为平台内容涉嫌侵犯到您的权益,可通过邮件:8990553@qq.com,我们将及时删除文章
本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除

腾谷资源站 java Java多线程技术教程 https://www.tenguzhan.com/5928.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务