线程,学了挺久了。我发现我不会写总结这种东西。
好吧,我又词穷了。不知道该怎么写了。先打开eclipse看看。先说说我对线程的理解把。
我觉得线程就是好几条流水线在一起工作,能提高工作效率和空间利用率。就像一个工厂,如果只用一条流水线,那每天生产的鞋子估计少得可怜,利润应该也不怎么样,这样的工厂应该关门了。但是如果一个工厂有好多条流水线,同时生产好多鞋子,那就可以挣好多钱,可以在这个行业有很强的竞争力。程序也是一样。一个只能单条路走下去的程序只能用来当教材。多条路一起走的程序才是有效率的程序。
放个简单的小球程序把,小球还不是立体的、、
import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.Graphics; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class ThreadFrame extends JFrame{ public static void main(String[] args) { ThreadFrame tf = new ThreadFrame(); tf.init(); } public void init(){ //设置属性 this.setTitle("弹球"); this.setSize(1000,600); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(3); // this.setLayout(new FlowLayout()); //实例化一个按钮 JButton jbu1 = new JButton("发射"); this.add(jbu1,BorderLayout.NORTH); JPanel jpa=new JPanel(); this.add(jpa,BorderLayout.CENTER); //BallListener bl = new BallListener(jpa, ball); //设置可见 this.setVisible(true); Graphics g = this.getGraphics(); BallThread ball=new BallThread(jpa); // ball.start(); BallListener tl = new BallListener(jpa,ball); jbu1.addActionListener(tl); } }
import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.BitSet; import javax.swing.JPanel; public class BallListener implements ActionListener{ private Graphics g; private BallThread ball; private JPanel jpa; //构造方法 public BallListener(JPanel jpa,BallThread ball){ this.jpa=jpa; this.g=jpa.getGraphics(); this.ball=ball; } public void actionPerformed(ActionEvent e) { BallThread bt =new BallThread(jpa); bt.start(); } }
import java.awt.Color; import java.awt.Graphics; import java.util.Random; import javax.swing.JPanel; public class BallThread extends Thread{ //定义四个方向的常量 public static final int UP=1; public static final int DOWN=2; public static final int LEFT=3; public static final int RIGHT=4; //球的半径 private int r; //球的颜色 private Color color; private int c1,c2,c3; //x和y方向的速度 private int xSpeed; private int ySpeed; //运动的方向 private int xDirection = RIGHT; private int yDirection = DOWN; //当前球的位置 private int x,y; //最后球的位置 //private int lastX,lastY; private Graphics g; private JPanel jpa; //构造方法 public BallThread(JPanel jpa) { this.jpa=jpa; this.g=jpa.getGraphics(); } public void run(){ init(); while(true){ try { sleep(50); } catch(InterruptedException e){ e.printStackTrace(); } clear(); move(); draw(); } } public void init(){ Random random = new Random(); xSpeed=2+random.nextInt(5); ySpeed=2+random.nextInt(5); r=20+random.nextInt(20); c1=random.nextInt(256); c2=random.nextInt(256); c3=random.nextInt(256); color=new Color(random.nextInt(256),random.nextInt(256),random.nextInt(256)); System.out.print(random.nextInt(256)); } public void move(){ switch(xDirection){ case LEFT: x-=xSpeed; break; case RIGHT: x+=xSpeed; } switch (yDirection) { case UP: y-=ySpeed; break; case DOWN: y+=ySpeed; break; } if(x<=0){ xDirection=RIGHT; } if(x+2*r>=jpa.getWidth()){ xDirection=LEFT; } if(y<=0){ yDirection=DOWN; } if(y+2*r>=jpa.getHeight()){ yDirection=UP; } } private void draw(){ g.setColor(color); g.fillOval(x, y, 2*r, 2*r); } private void clear() { g.setColor(jpa.getBackground()); g.fillOval(x, y, 2*r, 2*r); } }
相关推荐
综上所述,"Debug关于线程问题"中遇到的白屏现象可能是由于线程同步不当,导致主线程被阻塞。通过采用正确的线程同步策略和异步处理机制,可以有效地解决这类问题,确保程序的正常运行和用户体验。对于具体的代码...
### 关于线程与进程详细解说 #### 一、引言 在计算机科学领域,进程与线程是两个核心概念,对于理解操作系统的工作原理至关重要。本文将深入探讨这两个概念,并通过直观的图解来帮助读者更好地理解它们之间的区别...
本项目“关于线程和TCP的模拟读写文件”旨在通过多线程技术模拟读写文件的过程,为实现视频直播的后台服务打下基础。以下是关于这些主题的详细解释: 1. **线程**: - **定义**:线程是操作系统内核调度的基本单位...
关于线程练习,可以掌握线程的相关操作。。。
本文将深入探讨“关于线程的小程序”所涵盖的知识点,旨在为初学者提供一个全面的线程理解和实践基础。 一、线程的概念 线程是操作系统分配CPU时间片的基本单位,它在进程中执行,每个进程可以有多个线程。线程之间...
本示例将围绕“关于线程的例子”进行深入探讨,结合Eclipse3.3、MyEclipse6以及jdk1.5的软件环境,我们将学习如何在Java中创建、管理及同步线程。 首先,让我们了解线程的基本概念。线程是进程内的一个执行单元,每...
Java线程是并发编程中的核心概念,它允许程序同时执行多个任务,极大地提高了程序的效率和响应速度...通过学习和实践提供的"java关于线程的讲解实例6666.pdf",可以深入理解这些概念,并提升在多线程环境下的编程能力。
在这个“关于线程同步VC程序源代码”的压缩包中,我们可以期待找到与关键区、内核对象、多线程以及互斥对象相关的源代码示例。 1. **关键区(Critical Section)**: 关键区是一种简单的线程同步机制,它允许一次...
### Java特别篇-关于线程创建的三种方式的总结对比 #### 一、常见3种创建线程的方式 ##### (1)方式1:继承Thread类的方式 - **创建步骤**: - 创建一个类,继承`Thread`类。 - 重写`run()`方法,该方法将包含...
在Java编程中,线程是程序执行的独立路径,它允许多个任务同时进行,极大地提高了程序的效率和响应性。本实验代码基于《Java大学教程(第三版)》中的线程相关课题,旨在帮助学习者深入理解Java线程的概念、创建与...
本课程将深入探讨线程的基础知识,包括如何创建线程、理解线程的状态以及如何有效地管理线程资源,特别是通过线程池来优化性能。 首先,我们从线程的创建开始。在Java中,有两种主要的方式来创建线程:继承Thread类...
### Java/Android线程使用深度解析 在计算机科学领域,线程与进程是核心概念,尤其是在多任务操作系统中。本文将深入探讨Java/Android环境下的线程管理,包括线程的创建、线程池的利用及`ThreadHandler`的运用等...
本示例“线程的动态停止:一个很经典的多线程麦票程序”探讨了如何在运行时控制线程的执行和停止,这对于理解和优化多线程应用程序至关重要。 1. **线程的基本概念**: - 线程是操作系统分配CPU时间的基本单位,每...
【线程的概念与优势】 线程是操作系统调度的基本单位,它在同一个进程中并行执行,共享进程的资源,如内存空间、文件描述符等。线程的引入弥补了进程之间的通信成本高和资源开销大的问题。相比于进程,线程具有以下...
Java线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,提高了程序的并发性和效率。在Java中,线程是程序执行的基本单元,一个进程可以包含多个线程。下面将详细介绍Java线程编程的一些核心概念和...
在 Delphi 中,线程(Thread)是程序执行的基本单元,它允许并发处理,使得应用程序可以在同一时间执行多个任务。线程管理对于高效且响应迅速的软件开发至关重要。本篇文章将深入探讨 Delphi 中线程的创建、同步、...
在编程领域,线程是程序执行的一个独立路径,允许程序同时执行多个任务。在多核处理器或多处理器系统中,线程能充分利用硬件资源,提高程序的并发性和执行效率。本主题将深入探讨“线程实例的简单应用”,帮助初学者...
在C#编程中,线程同步是一个至关重要的概念,特别是在多线程环境下,它用于管理和控制多个线程的执行顺序,以确保数据的一致性和完整性。线程同步可以帮助避免竞态条件、死锁等问题,提高程序的稳定性和性能。本文将...
如果你在资源源码站找到了与这个标题相关的“content.txt”文件,可能包含的就是SanYe分享的关于线程返回数据的具体实现源码。 总的来说,易语言中的线程返回数据主要通过设置和获取线程变量来实现,同时需要注意...