`
1140566087
  • 浏览: 558432 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18509
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:313829
Group-logo
J2ME 基础学习课程集
浏览量:18688
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17550
社区版块
存档分类
最新评论

Thread 多线程的使用案例-简单

    博客分类:
  • J2ME
阅读更多
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;

//J2ME 中的多线程
// 在MIDP 应用设计中,如果遇到了复杂设计或者需要较长时间的操作,都可以
//使用多线程;
/*
 	比如应用程序连接网络,获取数据可能需要较长时间,
 	这时可以利用多线程技术允许用户同时进行其他操作,或者设计一个动画屏幕,
 	提示正在进行连网操作,这是很重要的,
 	否则用户无从知道应用程序的工作状态。	
 *
 *
 */
//简单的线条动画
public class LineThread extends Canvas implements Runnable,CommandListener {
	// 线长度
	int lineSize = 1;
	//创建一个命令
	private Command startCommand = new Command("Start Game",Command.OK,1);
	//初始化线程
	private Thread thread;
	MIDlet midlet;

	//构造方法
	public LineThread(MIDlet midlet){
		this.midlet = midlet;
		//为当前的类 , 添加一个命令
		addCommand(startCommand);
		//添加监听器
		setCommandListener(this);
	}

	public void run() {
		// TODO Auto-generated method stub
		// 线条增长到顶点停止
		while(true){
			if(lineSize>getHeight()){
				break;
			}
			lineSize+=10;
			
			try{
				//线程暂停
				Thread.sleep(130);
				//重绘事件
				repaint();
			}catch(Exception ex){
				ex.printStackTrace();
			}
			
		}
	}
	protected void paint(Graphics g) {	
		// TODO Auto-generated method stub
//		g.setColor(255, 255, 255);
//		g.fillRect(0, 0, this.getWidth(), this.getHeight());
		//线条
		g.setColor(0xff0000);
		//g.drawLine(this.getWidth()/2, getHeight(), getWidth()/2, this.getHeight()-lineSize);
		//画三角形
		//g.fillTriangle(0, 0, 0, lineSize, lineSize, 0);  //画布遮盖

		//三角形向两侧遮盖
		//		g.fillTriangle(this.getWidth()/2, this.getHeight()/2,getWidth()/2-lineSize,getHeight()/2,getWidth()/2,getHeight()/2-lineSize );
		//		g.fillTriangle(this.getWidth()/2, this.getHeight()/2,getWidth()/2,getHeight()/2+lineSize,getWidth()/2+lineSize,getHeight()/2);

		//网格线
		g.drawLine(getWidth()/2, getHeight(), getWidth()/2, 0);
		g.drawLine(0, getHeight()/2, getWidth(), getHeight()/2);
		g.setStrokeStyle(Graphics.SOLID);  //实线


		g.setStrokeStyle(Graphics.DOTTED); //虚线
		g.drawLine(getWidth()/2-lineSize, getHeight()/2, getWidth()/2, getHeight()/2-lineSize);
		g.drawLine(getWidth()/2+lineSize, getHeight()/2, getWidth()/2, getHeight()/2-lineSize);
		g.drawLine(getWidth()/2-lineSize, getHeight()/2, getWidth()/2, getHeight()/2+lineSize);
		g.drawLine(getWidth()/2+lineSize, getHeight()/2, getWidth()/2, getHeight()/2+lineSize);
		



		//计时器
		g.setColor(0x0000ff);
		g.drawString(Long.toString(System.currentTimeMillis()), 2, 2, Graphics.TOP|Graphics.LEFT);

	}

	//根据命令的选择启动线程
	public void commandAction(Command c, Displayable d) {
		// TODO Auto-generated method stub
		if(c==startCommand){
			thread=new Thread(this);
			thread.start();
		}

	}

}
0
4
分享到:
评论

相关推荐

    java多线程经典案例

    通过分析并实践`threadTest`案例,我们可以深入理解Java多线程的原理和使用技巧,为编写高效并发程序打下坚实基础。同时,也要注意多线程编程中的死锁、活锁和饥饿等问题,合理设计线程间的交互,避免出现不可预期的...

    多线程+售票案例.docx

    继承 Thread 类是一种简单的多线程创建方式。只需要创建一个新的类,继承 Thread 类,并复写 run() 方法,就可以启动新线程并执行自己定义的 run() 方法。 Thread 类的生命周期 -------------------- Thread 类的...

    Java多线程程序案例

    在Java中,多线程是通过`Thread`类或实现`Runnable`接口来实现的。多线程可以提高程序的执行效率,尤其是在处理CPU密集型或I/O密集型任务时。在给定的代码片段中,并没有直接涉及到多线程的创建与使用,但是我们可以...

    java多线程案例-龟兔赛跑

    在这个“java多线程案例-龟兔赛跑”中,我们将探讨如何利用Java实现一个经典的并发编程示例,即模拟龟兔赛跑的故事。 在传统的龟兔赛跑故事中,兔子因为骄傲自满而打了个盹,结果被慢悠悠的乌龟超越,最终赢得比赛...

    多线程简单应用-每秒获取系统时间.zip

    这个压缩包“多线程简单应用-每秒获取系统时间.zip”显然是为了演示如何在编程中实现多线程来实时获取系统时间。 首先,我们要理解什么是多线程。在单线程环境下,程序执行是顺序的,而多线程则允许多个任务同时...

    多线程精品资源--多线程与高并发.zip

    资源包"ahao5"可能包含有关多线程和高并发实践的代码示例、教程、案例研究等,可以帮助开发者深入了解这两个主题。通过学习这些资源,你可以掌握如何设计和实现高效、稳定的多线程程序,以及如何构建能够处理大规模...

    VB 多线程模块案例

    本案例"VB 多线程模块"着重于展示如何在VB中创建和管理多线程,以实现并发操作。 首先,VB中的多线程主要依赖于`System.Threading`命名空间,该命名空间提供了多种类来支持线程的创建和管理。其中,`Thread`类是...

    多线程案例,多线程教程

    在编程领域,多线程是一种常见的技术,它允许程序...理解并掌握多线程的概念、使用方法以及同步通信机制,对于成为一名优秀的程序员至关重要。通过实际案例,如Gdownload_V2.0,你可以更好地理解和实践这些理论知识。

    多线程终极案例程序(多线程进阶)

    这个“多线程终极案例程序”旨在帮助Java开发者深化对多线程的理解,通过一个具体的“多兵种联合攻击防御塔”游戏案例来实践。下面将详细解释该案例中的关键知识点。 首先,多线程是并发执行多个任务的能力,可以...

    详细剖析JAVA多线程案例教学

    ### JAVA多线程案例教学详析 #### 一、引言 随着计算机技术的发展,多核处理器已经成为标准配置,为了充分利用硬件资源,提高程序的执行效率,多线程编程成为了现代软件开发中不可或缺的一部分。Java作为一种广泛...

    java多线程处理教学案例

    在Java编程语言中,多线程是并发编程的重要组成...通过这个教学案例,你可以深入了解Java多线程的使用,以及如何在实际场景中运用生产者消费者模式来解决问题。实践这部分知识,将有助于提升你在并发编程领域的技能。

    stm32单片机多线程实例

    通过学习这个示例项目,开发者不仅可以掌握STM32单片机的RT-Thread多线程编程,还能深入了解RTOS的运行机制,为进一步的嵌入式系统开发打下坚实基础。在实践中不断探索和优化,可以将STM32的性能发挥到极致。

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行

    本资源包含六个C#.NET多线程的实例,涵盖了多线程的基本使用到更高级的概念,如线程互斥。以下是这些实例可能涉及的关键知识点: 1. **线程创建**:C#中创建线程主要有两种方式,一是通过`System.Threading.Thread`...

    多线程实现客户-服务器结构的一个例子(37KB)

    9. **案例分析**:在这个37KB的压缩包中,`cpp`文件很可能包含了用C++实现的多线程客户-服务器示例代码。通过分析代码,我们可以深入理解如何在C++中创建和管理线程,以及如何处理客户请求和服务器响应。 10. **...

    java多线程代码案例(创建线程,主线程,线程优先级,线程组,线程同步,线程间的通信)

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。本文将深入探讨Java多线程中...通过阅读和分析提供的`java多线程的案例源代码`,可以更直观地了解这些概念在实际中的应用。

    基于Java+socket实现多线程聊天室-控制台版.rar

    在本项目"基于Java+socket实现多线程聊天室-控制台版"中,开发者创建了一个简单的、基于命令行界面的多人聊天应用。这个应用利用了Java编程语言以及Socket网络编程技术来实现实时的通信功能。以下是关于这个项目的...

    JAVA多线程编程详解-详细操作例子

    在IT行业中,多线程编程是Java语言的一个重要特性,它允许程序同时执行多个任务,提高了应用程序的效率和响应速度。本主题将深入探讨“JAVA多线程编程详解-详细操作例子”,结合提供的资源,我们可以从以下几个方面...

    java多线程编程-详细炒作例子

    ### Java多线程编程详解与实战案例 #### 理解多线程概念与Java内存模型 多线程,作为现代编程中的一项关键技术,允许在单一应用程序中并发执行多个指令流,每个这样的指令流被称为一个线程。在Java中,线程被视为...

    C++多线程编程实战-pdf

    8. **实战案例**:通过实际项目或示例,展示如何在C++中设计和实现多线程应用程序,可能涵盖网络服务器、数据库连接池、并行计算等场景。 9. **异常安全**:在多线程环境中,如何确保代码在异常情况下也能正确清理...

    java多线程案例——未完成

    在这个未完成的案例中,我们可能正在探讨如何在Java中创建和管理线程,以及处理多线程环境下的并发问题。下面是对Java多线程基础知识的详细解释: 1. **线程的创建方式**: - 继承`Thread`类:自定义一个新的类,...

Global site tag (gtag.js) - Google Analytics