java多线程中执行多个程序的实例分析
作者:小妮浅浅 发布时间:2023-03-11 18:21:58
标签:java,多线程
我们知道多线程因为同时处理子线程的能力,对于程序运行来说,能够达到很高的效率。不过很多人对于多线程的执行方法还没有尝试过,本篇我们将为大家介绍创建线程的方法,在这个基础上,对程序执行多条命令的方法进行展示。下面我们就来看看具体的操作步骤吧。
1、创建线程对象我们需要用到Thread类,该类是java.lang包下的一个类,所以调用时不需要导入包。下面我们先创建一个新的子类来继承Thread类,然后通过重写run()方法(将需要同时进行的任务写进run()方法内),来达到让程序同时做多件事情的目的。
import java.awt.Graphics;
import java.util.Random;
public class ThreadClass extends Thread{
public Graphics g;
//用构造器传参的办法将画布传入ThreadClass类中
public ThreadClass(Graphics g){
this.g=g;
}
public void run(){
//获取随机的x,y坐标作为小球的坐标
Random ran=new Random();
int x=ran.nextInt(900);
int y=ran.nextInt(900);
for(int i=0;i<100;i++){
g.fillOval(x+i,y+i,30,30);
try{
Thread.sleep(30);
}catch(Exception ef){
}
}
}
}
2、在主类的按钮事件 * 这边插入这样一段代码,即每按一次按钮则生成一个ThreadClass对象。
public void actionPerformed(ActionEvent e){
ThreadClass thc=new ThreadClass(g);
thc.start();
}
3、在这里我们生成ThreadClass对象并调用start()函数后,线程被创建并进入准备状态,每个线程对象都可以同时独立执行run()方法中的函数,当run()方法中的代码执行完毕时线程自动停止。
java8多线程运行程序实例
public class Main {
//method to print numbers from 1 to 10
public static void printNumbers() {
for (int i = 1; i <= 10; i++) {
System.out.print(i + " ");
}
//printing new line
System.out.println();
}
//main code
public static void main(String[] args) {
//thread object creation
Thread one = new Thread(Main::printNumbers);
Thread two = new Thread(Main::printNumbers);
//starting the threads
one.start();
two.start();
}
}
输出
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
来源:https://www.py.cn/java/jichu/23710.html


猜你喜欢
- 1、简介应客户要求为了是特殊定制的系统更具安全,系统ROM需要使用自己定义的签名,还有一些特殊的场景也会更改系统的签名比如在过cts认证测试
- 1、SQLite介绍SQLite,是一款轻型的数据库,是遵守的ACID关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标嵌入式是
- Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。
- 使用Integer类型查询出现的问题mapper.xml :<select id="count" paramete
- .NET Framework为动态列表List提供泛型类List<T>。这个类实现了IList,ICollection,IEnu
- 前言这是用testng框架加selenium做的一个UI自动化测试的项目Java代码package com.justin;/**?* @au
- C#延时函数sleepsleepusing System.Threading; //导入命名空间,类Thread就在此空间中Th
- 前言:今年是我的第二个 1024 了 ,和我一起大声说出来,技术宅改变世界!!!本节主要介绍的是:SpringBoot 整合阿里 Druid
- 什么是EurekaEureka是Netfilx开源的一个用来实现微服务的注册与发现的组件。它包含Server和Client两部分。为什么要有
- Java实现Dijkstra输出指定起点到终点的最短路径前言:最近在公司参加了一个比赛,其中涉及的一个问题,可以简化成如是描述:一个二维矩阵
- Maven热部署,顾名思义就是可以不影响项目在服务器中的运行情况,可以实现项目代码的更新,减少启动,编译时间,达到快速开发的目的,也不需要手
- 前言 安卓系统中,Button是程序和用户进行交互的一个重要控件,今天我们就来简单的对Button进行学习,其中Bu
- 前言在我们java开发中,Date日期这个字段会被经常使用,比如获取当前系统的时间,获取上个月,上一年的时间,以及获取两个日期相差的时分秒数
- Android 媒体库数据更新方法总结在项目中,我们经常要创建个自己的目录,里面存放一些图片啊文件之类,比如:我在SD卡中刚创建了一个文件夹
- Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, P
- 本文实例为大家分享了C#遍历文件夹获取指定后缀名文件的具体代码,供大家参考,具体内容如下问题描述:项目需要,要进行某文件夹下所有shp数据的
- 用java实现简易外卖订餐系统,供大家参考,具体内容如下一、使用技术javaSE二、实现功能外卖订餐系统具体要求如下:使用选择结构,循环结构
- 前言在学习android中图形图像处理技术这部分内容时,对绘制圆弧函数canvas.drawArc()的用法、参数含义及画图原理很是不理解,
- 概述从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.队列队列 (Queue) 遵循先进先出的原则 (Firs
- 在测试过程中,我们有时候需要一个唯一不重复的值(比如order_id)。我之前一直用的时间戳+计数器/随机函数拼接,但是有时候效果不太好,今