问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

辅以图示简述Java线程的生命周期

发布网友 发布时间:2022-04-20 21:44

我来回答

2个回答

热心网友 时间:2023-07-18 05:04

//这是线程被中断,同生命周期的代码,希望帮到你啦!
class MyThread implements Runnable {
@Override
public void run() {
System.out.println("1、进入run()方法休眠");
try {
System.out.println("2、线程休眠20秒");
Thread.sleep(20000);//这里休眠20秒
System.out.println("3、线程正常休眠完毕");
} catch (InterruptedException e) {
System.out.println("4、线程发生异常休眠被中断");
return;//返回方法调用处
}
System.out.println("5、线程正常结束run()方法体");
}
}
public class InterruptDemo {

public static void main(String[] args) {
MyThread mt = new MyThread();
Thread t = new Thread(mt,"线程A");
t.start();//启动线程
//========================================================
try {
Thread.sleep(2000); //保证线程至少执行2秒
} catch (InterruptedException e) {
e.printStackTrace();
}
//========================================================
t.interrupt();//中断线程
}
}

热心网友 时间:2023-07-18 05:04

不知道你的怪物长什么样子,用个点来模仿一下。

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;

public class BounceThread {
public static void main(String[] args) {
JFrame frame = new BounceFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class BallRunnable implements Runnable {
public BallRunnable(Ball aBall, Component aComponent) {
ball = aBall;
component = aComponent;
}

public void run() {
try {
for(int i=1;i<=STEPS;i++) {
ball.move(component.getBounds());
component.repaint();
Thread.sleep(DELAY);
}
} catch(InterruptedException e) {
e.printStackTrace();
}
}

private Ball ball;
private Component component;
public static final int STEPS = 1000;
public static final int DELAY = 5;
}

class Ball {

private static final int XSIZE = 15;
private static final int YSIZE = 15;
private double x = 0;
private double y = 0;
private double dx = 1;
private double dy = 1;

public void move(Rectangle2D bounds) {
x += dx;
y += dy;
if(x<bounds.getMinX()) {
x = bounds.getMinX();
dx = -dx;
}
if(x+XSIZE>=bounds.getMaxX()) {
x = bounds.getMaxX()-XSIZE;
dx =-dx;
}
if(y<bounds.getMinY()) {
y = bounds.getMinY();
dy = -dy;
}
if(y+YSIZE>=bounds.getMaxY()) {
y = bounds.getMaxY()-YSIZE;
dy = -dy;
}
}

public Ellipse2D getShape() {
return new Ellipse2D.Double(x, y, XSIZE, YSIZE);
}

}

class BallPanel extends JPanel {
public void add(Ball b) {
balls.add(b);
}

public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 =(Graphics2D)g;
for(Ball b : balls) {
g2.fill(b.getShape());
}
}
private ArrayList<Ball>balls = new ArrayList<Ball>();
}

class BounceFrame extends JFrame {

private BallPanel panel;
public static final int STEPS = 1000;
public static final int DELAY = 3;

public BounceFrame() {
setSize(450,350);
setTitle("Bounce");

panel = new BallPanel();
add(panel, BorderLayout.CENTER);
JPanel buttonPanel = new JPanel();
addButton(buttonPanel, "Start", new ActionListener() {
public void actionPerformed(ActionEvent event) {
addBall();
}
});

addButton(buttonPanel, "Close", new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
add(buttonPanel, BorderLayout.SOUTH);
}

public void addButton(Container c, String title, ActionListener listener) {
JButton button = new JButton(title);
c.add(button);
button.addActionListener(listener);
}

public void addBall() {
Ball ball = new Ball();
panel.add(ball);

Runnable r = new BallRunnable(ball, panel);
Thread t = new Thread(r);
t.start();
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 JAVA中,线程有哪五个基本状态?他们之间如何让转... java中所有的生命周期有哪些 Java开发有哪些不同的线程生命周期? JAVA:线程的生命周期是什么 java线程的生命周期有哪些 【Java基础】线程生命周期有哪些阶段? iQOO怎么设置主屏位置 iqoo怎么拍实况 iqoo拍照怎么样 抗非典的感人事迹 VIVO IQOO 手机怎么样? 叶欣抗击“非典”的英雄事迹 抗击“非典”的英雄事迹 有关2003年一场病中一些人的感人故事的作文400字 iqoo手机怎么样 让无数网友泪目,疫情上报第一人张继先究竟有何感... iQOO手机怎么样? 抗击非典的英雄人物和他们的事迹 iQOO手机怎么样? 你知道非典的感人故事吗 JAVA中,线程有哪五个基本状态 他们之间如何让转化... java 多线程怎么深入? java 线程有哪些状态,这些状态之间是如何转化的 java线程有哪些状态 JAVA线程的机制有哪些? 基于java 线程的几种状态 Java如何实现线程的暂停和重新启用?求大神 JavaThread线程的状态有哪些? java编程的填空题,线程的生命周期中,线程对象调... 求一个java的多线程程序,能够体现线程的生命周期... 如何令java线程池中线程超过5分钟时该线程自杀 内置或外置基带怎样辨别? 什么软件可以解压.zip的文件 zip文件怎么解压?下个什么解压器? jpg zip dl用什么压缩软件解压 解压zip格式的软件有哪些 zip文件用什么软件解压 安卓手机上压缩/解压缩文件有哪些软件? 可以解压ZIP的软件 手机下载什么软件可以打开zip格式的课件?