ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java中的多线程

2020-07-05 11:04:34  阅读:247  来源: 互联网

标签:Runnable Java Thread running 线程 多线程


[

多线程是一种Java功能,允许并发执行程序的两个或多个部分,以最大限度地利用CPU。这种程序的每个部分都称为线程。因此,线程是一个过程中的轻量级进程。

可以使用两种机制创建线程:

  1. 扩展Thread类
  2. 实现Runnable接口
  3. 通过Callable和Future创建线程

Java创建线程的方法

通过扩展Thread类创建线程

创建线程我们创建一个扩展java.lang.Thread类的类。此类重写Thread类中可用的run()方法。线程在run()方法中开始生命。我们创建了一个新类的对象,并调用start()方法来开始执行一个线程。Start()调用Thread对象上的run()方法。

// Java code for thread creation by extending
// the Thread class
class MultithreadingDemo extends Thread
{
    public void run()
    {
        try
        {
            // Displaying the thread that is running
            System.out.println ("Thread " +
                  Thread.currentThread().getId() +
                  " is running");
 
        }
        catch (Exception e)
        {
            // Throwing an exception
            System.out.println ("Exception is caught");
        }
    }
}
 
// Main Class
public class Multithread
{
    public static void main(String[] args)
    {
        int n = 8; // Number of threads
        for (int i=0; i<8; i++)
        {
            MultithreadingDemo object = new MultithreadingDemo();
            object.start();
        }
    }
}

输出:

Thread 8 is running
Thread 9 is running
Thread 10 is running
Thread 11 is running
Thread 12 is running
Thread 13 is running
Thread 14 is running
Thread 15 is running

通过实现Runnable接口创建线程

创建线程我们创建了一个新类,它实现了java.lang.Runnable接口并覆盖了run()方法。然后我们实例化一个Thread对象并在该对象上调用start()方法。

// Java code for thread creation by implementing
// the Runnable Interface
class MultithreadingDemo implements Runnable
{
    public void run()
    {
        try
        {
            // Displaying the thread that is running
            System.out.println ("Thread " +
                                Thread.currentThread().getId() +
                                " is running");
 
        }
        catch (Exception e)
        {
            // Throwing an exception
            System.out.println ("Exception is caught");
        }
    }
}
 
// Main Class
class Multithread
{
    public static void main(String[] args)
    {
        int n = 8; // Number of threads
        for (int i=0; i<8; i++)
        {
            Thread object = new Thread(new MultithreadingDemo());
            object.start();
        }
    }
}

输出:

Thread 8 is running
Thread 9 is running
Thread 10 is running
Thread 11 is running
Thread 12 is running
Thread 13 is running
Thread 14 is running
Thread 15 is running

线程类与Runnable接口

1.如果我们扩展Thread类,我们的类不能扩展任何其他类,因为Java不支持多重继承。但是,如果我们实现Runnable接口,我们的类仍然可以扩展其他基类。

2.我们可以通过扩展Thread类来实现线程的基本功能,因为它提供了一些内置的方法,如yield(),interrupt()等在Runnable接口中不可用。

Java多线程的相关章节

]
  •   本文标题:Java中的多线程 - Break易站转载请保留页面地址:https://www.breakyizhan.com/java/4932.html

    标签:Runnable,Java,Thread,running,线程,多线程
    来源: https://www.cnblogs.com/breakyizhan/p/13238122.html

    本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
    2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
    3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
    4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
    5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

    专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

    Copyright (C)ICode9.com, All Rights Reserved.

    ICode9版权所有