`
tangkuo
  • 浏览: 103339 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Thread与Runnable实现线程利用线程插队实现求和操作

 
阅读更多

--------------------实现线程的两种方式-----------------

package com.tangkuo.thread.cn;
/**
*
* @author tangkuo
*
*/
public class ThreadDemo extends Thread{

/**
* 线程 每次输出一个数字,休眠5秒钟
* 打印当前线程的名字与输出的数字值
*
*/
@Override
public void run(){
for(int i = 0; i < 10; i++){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("新线程"+ Thread.currentThread().getName()+"输出"+i);
}
}
public static void main(String[] args) {
ThreadDemo thread1 = new ThreadDemo();
ThreadDemo thread2 = new ThreadDemo();
thread1.start();
thread2.start();
for(int i = 0; i < 10; i++){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("主线程"+ Thread.currentThread().getName()+"输出"+i);
}
}


}



package com.tangkuo.thread.cn;

public class RunnableDemo implements Runnable {

@Override
public void run() {
for(int i = 0; i < 10; i++){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("新线程"+ Thread.currentThread().getName()+"输出"+i);
}

}

public static void main(String[] args) {
RunnableDemo runnableDemo = new RunnableDemo();
//Runnable runnableDemo = new RunnableDemo();

Thread thread1 = new Thread(runnableDemo);
Thread thread2 = new Thread(runnableDemo);
thread1.start();
thread2.start();
for(int i = 0; i < 10; i++){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("主线程的名字"+ Thread.currentThread().getName()+"输出值"+i);
}
}

}



package com.tangkuo.thread.cn;
/**
* 利用线程插队求和
* @author Administrator
*
*/
public class SumRunnableDemo implements Runnable {
private int x;
private int y;
private long sum;

@Override
public void run() {
for(int i = x; i < y; i++){
sum +=i;
}
}

public SumRunnableDemo(int x, int y) {
super();
this.x = x;
this.y = y;
System.out.println(x+"到"+y+"之间的和等于");
}

public long getSum() {
return sum;
}



public static void main(String[] args) {
SumRunnableDemo srd = new SumRunnableDemo(1,100);
Thread thread = new Thread(srd);
thread.start();
//线程插队求和
try {
thread.join();//主线程必须等子线程执行完毕才能运行关闭。保证子线程所有业务逻辑处理完成
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("sum="+srd.getSum());
}

}




分享到:
评论

相关推荐

    thread 线程类 实现runnable接口

    Thread 线程类是 Java 中 Thread 和 Runnable 接口的实现,它提供了线程的基本操作和管理。下面是对 Thread 类的详细介绍: 1. Runnable 接口 Runnable 接口是 Thread 类的基类,它提供了 run() 方法,该方法是...

    实现Runnable接口创建多线程.docx

    在Java编程语言中,创建线程有两种主要方式:继承`Thread`类和实现`Runnable`接口。由于Java的单继承特性,当一个类需要继承其他类时,就不能再直接继承`Thread`,这时实现`Runnable`接口就成为创建线程的优选方案。...

    Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。

    无论是通过继承`Thread`类还是实现`Runnable`接口,都可以有效地利用多线程提高程序的执行效率。同时,我们也需要注意多线程环境下可能出现的资源共享问题,并采取适当的同步措施来确保数据的一致性和安全性。

    【java学习记录】11.多线程实现阶乘计算(Thread类和Runnable接口)

    本篇文章将深入探讨如何利用`Thread`类和`Runnable`接口来实现阶乘计算的多线程解决方案。阶乘计算是数学中的一个概念,对于非负整数n,其阶乘表示为所有小于等于n的正整数的乘积,记作n!。 首先,我们来看如何使用...

    francistao#LearningNotes#Thread和Runnable实现多线程的区别1

    在第二种方法中,由于3个Thread对象共同执行一个Runnable对象中的代码,因此可能会造成线程的不安全,比如可能ticket会输出-1(如果我们Syste

    java线程_Thread_Runnable

    Java提供了两种创建线程的方式:继承Thread类和实现Runnable接口。 1. 继承Thread类创建线程: 当你选择继承Thread类时,你需要创建一个新的类,这个类扩展自Thread类。Thread类已经实现了Runnable接口,所以你不...

    android demo,Runnable异步线程的处理

    本Android演示项目("android demo")旨在展示如何在Android应用程序中有效地利用Runnable来实现异步操作。 首先,我们需要理解Android主线程,也被称为UI线程,它负责处理用户界面的更新和事件响应。如果在主线程...

    Java多线程技术 线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口

    通过深入理解线程的基本概念、生命期、状态转换、调度原则以及实现方式,可以有效地利用多线程来优化应用程序。同时,合理地处理线程间的同步和避免死锁也是构建稳定、可靠的多线程应用的关键。

    线程Runnable的实现

    在一个线程中求100以内的偶数,求出一个偶数后休眠一个随机时间在(1-300毫秒之间).在另一个线程中求奇数,求出一个奇数后也休眠一个随机时间(1-300毫秒之间).输出数据时应有提示,指明是哪个线程输出的数据 用实例...

    用Runnable创建线程比较--java

    本篇文章将深入探讨如何使用`Runnable`接口创建线程,并与`Thread`类创建线程的方式进行比较。 首先,我们来看`Runnable`接口。`Runnable`是Java提供的一个接口,其中只有一个抽象方法`run()`. 当你创建一个类实现...

    多线程的Runnable_和thread有什么区别

    ### 多线程的Runnable与Thread的区别 在Java中实现多线程有两种主要方式:一种是继承`Thread`类;另一种是实现`Runnable`接口。本文将深入探讨这两种方法的区别,帮助初学者更好地理解并选择适合场景的多线程实现...

    实现Runnable接口和继承Thread类两种方式实现在屏幕上随机画正方形线程程序

    本文将深入探讨如何通过实现`Runnable`接口和继承`Thread`类两种方式来创建线程,并实现在屏幕上随机画正方形的程序。 首先,让我们了解线程的概念。线程是程序中的单一顺序控制流,一个进程可以包含多个线程,它们...

    synchronized 实现多线程 implements Runnable

    一个简单的多线程代码示例,Java实现,用于实现同一时刻,只允许一个线程调用执行的代码块或类,即synchronized的如何使用(多线程实现),实现 Runnable

    实现runnable接口创建线程

    声明自定义线程类实现Runnable接口实现奇数/偶数序列线程并发执行。

    Java多线程-创建多线程的基本方式二:实现Runnable接口

    本文将详细讲解如何通过实现`Runnable`接口创建多线程,以及这种方式相较于继承`Thread`类的优势。 一、实现Runnable接口创建多线程 1. **步骤** 当一个类需要继承其他类而不能直接继承`Thread`类时,可以选择...

    Java使用Thread和Runnable的线程实现方法比较

    Java 使用 Thread 和 Runnable 的线程实现方法比较 Java 中有两种方式来实现多线程:使用 Thread 类和使用 Runnable 接口。下面将对这两种方法进行比较和分析。 使用 Thread 类实现多线程 使用 Thread 类实现多...

    认识Thread和Runnable

    Thread 和 Runnable 是实现 Java 多线程的两种方式,Runnable 是接口,Thread 是类,建议使用 Runnable 实现 Java 多线程,不管如何,最终都需要通过 thread.start() 来使线程处于可运行状态。 Thread 的 start 和 ...

    java 多线程Thread与runnable的区别

    Java 多线程 Thread 与 Runnable 的区别 Java 多线程技术是 Java 语言中的一种基础技术,用于实现多任务并发执行的功能。在 Java 中,实现多线程有两种方法:继承 Thread 类和实现 Runnable 接口。在本文中,我们将...

    创建线程类轻松实现线程管理

    Java提供两种主要方式来创建线程:继承`Thread`类或实现`Runnable`接口。这两种方法都可以让类成为可执行的线程,但它们之间存在一些差异。 1. 继承`Thread`类: 当你创建一个新的类并直接继承`Thread`类时,你可以...

    Android 多线程下载简单demo之Runnable

    在Android开发中,多线程下载是一个常见的需求,特别是在处理大文件或者为了提高用户体验时,我们需要利用多线程来分块下载数据。本篇将基于`Runnable`接口提供一个简单的多线程下载示例,帮助开发者理解如何在...

Global site tag (gtag.js) - Google Analytics