`
lpbj010
  • 浏览: 2588 次
社区版块
存档分类
最新评论

java 多线程的实现

阅读更多
java 多线程的实现
简单的说,java多线程分两种形式,继承Thread类,实现Runnable接口。
继承Thread类
public class TestThread extends Thread{
	public void run(){
		//do work
	}
	
	public static void main(String[] args){
		Thread tt = new TestThread();
		tt.start();
	} 
}

实现Runnable接口
public class TestThread implements Runnable{
	public void run(){
		//do work
	}
	
	public static void main(String[] args){
		Thread tt = new Thread(new TestThread());    (A)
		tt.start();
	} 
}

感觉相差不大,其实本质上是一样的,看Thread类的源码,
public class Thread implements Runnable
可以看到Thread自己实现了Runnable接口,再看Thread类中的run()方法

	@Override
    public void run() {
        if (target != null) {
            target.run();
        }
    }
	


执行了target的run()方法,target是初始化时带进来的实现了Runnable的类,在上述的代码(A)处,所以我们最终都是执行了被实现的Runnable中的run()方法。

多线程的开始方法start()方法,中调用start0()方法,可以看到这个方法是个native方法,它会重新启动个线程执行run()方法。所以多线程调用使用start(),
直接调用run()方法。


在jdk1.5以后,多了个java.util.concurrent包,这个包里提供了一些新的多线程相关的类。
其中类似Runnable接口的Callable接口,实现其中的call()方法,就可以被ExecutorService类执行,当然底层还是转换成了Thread执行。

所以java多线程可以概括成,Thread通过调用native的start0方法新启动了个线程,执行run()方法。
分享到:
评论

相关推荐

    java多线程实现TCP连接UDP聊天的聊天程序

    java多线程实现TCP连接UDP聊天的聊天程序

    Java多线程实现异步调用实例

    总之,Java多线程和异步调用是构建高效、响应迅速的应用程序的关键技术。通过合理利用这些工具和机制,开发者可以编写出能够充分利用多核处理器优势的代码,从而提高软件性能。在实际应用中,理解并熟练掌握这些概念...

    java多线程实现大批量数据导入源码

    本项目以"java多线程实现大批量数据导入源码"为题,旨在通过多线程策略将大量数据切分,并进行并行处理,以提高数据处理速度。 首先,我们需要理解Java中的线程机制。Java通过`Thread`类来创建和管理线程。每个线程...

    java多线程实现动画功能

    java一些简单的多线程用法,适合初学者

    用Java多线程实现数据结构算法动态演示.caj

    用Java多线程实现数据结构算法动态演示.caj

    Java多线程实现生产者消费者

    在Java编程中,多线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而提高了系统的效率和响应性。本示例中的“生产者-消费者”模型是一种经典的多线程问题,它模拟了实际生产环境中的资源分配与消耗...

    java多线程实现五子棋游戏

    本项目"java多线程实现五子棋游戏"利用了这一特性,结合套接字(Socket)通信,构建了一个可以在线对战的五子棋游戏。下面将详细解析其中涉及的主要知识点。 一、Java线程 1. **线程创建**:在Java中,可以通过...

    java多线程实现乒乓球双打

    总结来说,实现"java多线程实现乒乓球双打"需要对Java的线程API有深入的理解,包括线程的创建与启动、同步与通信机制、并发控制工具的使用以及设计模式的应用。通过这种方式,我们可以构建出一个生动有趣的模拟游戏...

    java多线程实现坦克大战游戏带声音图片

    本文将围绕“Java多线程实现坦克大战游戏带声音图片”这一主题,深入探讨如何利用Java的多线程技术来构建一个包含声音和图形的坦克战斗游戏。 首先,我们要理解Java中的线程。线程是程序执行的最小单元,每个线程都...

    java多线程实现动画

    java 多线程实现动画控制

    使用java多线程实现mm跳舞动画

    在这个场景中,“使用java多线程实现mm跳舞动画”指的是通过编程技术创建一个模拟女孩跳舞的动态效果,用户还可以根据需求切换不同的舞蹈动画,并调整动画的播放速度。 首先,我们需要了解Java中实现多线程的两种...

    用Java多线程实现数据结构算法动态演示.pdf

    ### Java多线程实现数据结构算法动态演示知识点 #### 1. 多线程简介 - **程序、进程和线程的区别**: - **程序**是静态的代码序列,它是执行过程的蓝图,本身不执行操作。 - **进程**是程序的动态执行过程,涉及...

    Java多线程实现多兵种攻击炮塔案例

    在这个“Java多线程实现多兵种攻击炮塔案例”中,我们将探讨如何利用Java的线程池技术来模拟不同兵种对炮塔的并发攻击。以下是对这个案例的详细解释: 首先,我们需要理解Java中的线程。线程是程序执行的最小单元,...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    java多线程进度条

    本主题将深入探讨如何在Java多线程环境下实现进度条功能。 首先,理解Java多线程的基本概念至关重要。Java通过Thread类和Runnable接口来支持多线程。创建一个新线程通常有两种方式:继承Thread类并重写run()方法,...

    Java多线程实现回调函数.txt

    Java多线程实现 自定义 的 回调函数. 手写 完成,亲测 完成,可以 直接运行,Demo ,具有一定参考价值,供大家阅读 下载,谢谢

    Mandelbrot集的java多线程实现方法.pdf

    《Mandelbrot集的Java多线程实现方法》 Mandelbrot集是一个在复数平面上由特定迭代过程定义的点集,其特点在于通过反复应用一个数学函数,某些点的序列会保持在有限区域内,而其他点则会发散到无穷大。这一集合在...

    java多线程模拟队列实现排队叫号

    总的来说,通过Java多线程和队列数据结构,我们可以有效地模拟排队叫号系统。这种模拟有助于理解和实践并发编程,同时也为我们解决实际问题提供了思路。在这个过程中,我们学习了线程同步、队列操作以及如何在Java中...

    java多线程实现下载图片并压缩

    "java多线程实现下载图片并压缩" 在本文中,我们将详细介绍java多线程实现下载图片并压缩的过程,涵盖了 SpringMVC定时任务的实现、FTP环境搭建、图片下载和压缩等多个方面。 多线程实现下载图片 在多线程实现...

    使用java多线程实现男孩和女孩一起去上课的动画

    在这个“使用java多线程实现男孩和女孩一起去上课的动画”项目中,我们将探讨如何利用Java的线程机制来创建一个生动有趣的动画场景。 首先,我们需要了解Java中的线程基础。在Java中,有两种方式创建线程:继承...

Global site tag (gtag.js) - Google Analytics