`
出_发
  • 浏览: 1334 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

线程初步

 
阅读更多
问题引入:创建主界面,在主界面添加按钮,并为按钮添加动作监听器,使点击时输出“Ok”字样;代码如下:
private void initUI() {
		this.setTitle("简单线程");//设置标题
		this.setSize(new Dimension(500,500));//设置大小
		this.setLocationRelativeTo(null);//设置初始位置
		this.setDefaultCloseOperation(3);//关闭时至季节退出程序
		this.setLayout(null);//设置布局
		creatJButton();//调用创建按钮的方法
		this.setVisible(true);//设置可见
	}
	//创建按钮的方法
	public void creatJButton(){
		final JButton jbu = new JButton("OK");
		jbu.setBounds(30,30,70,30);
		//匿名内部类
		ActionListener al = new ActionListener(){
			
		
			public void actionPerformed(ActionEvent e) {
				System.out.println("OK");
			}
			};
			jbu.addActionListener(al);//添加动作监听器
			this.add(jbu);
	}
 
  程序运行的很快,且无任何滞阻。但是当需要输出更多的字样,比如成千上万或者更多的时候,程序就会停止在输出的状态,再次点击按钮时,无任何反应,而且界面也不能执行其他相应的操作!所以我们需要线程来解决问题!
  线程:程序中独立运行的单位。这样,在有多个线程之后,就可以让多个执行命令并发运行!
  线程实现的方法:用MainThread类继承自Thread,重写Thread中的run方法,然后在主程序中实例化该类,并启动线程;改进代码如下:
//创建按钮的方法
	public void creatJButton(){
		final JButton jbu = new JButton("OK");
		jbu.setBounds(30,30,70,30);
		//匿名内部类
		ActionListener al = new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				MainThread r = new MainThread(jbu);//实例化
				r.start();//启用线程
				}
			};
			jbu.addActionListener(al);//添加动作监听器
			this.add(jbu);
	}
//继承自Thread,创建线程
public class MainThread extends Thread{
	private JButton jbu;
	private int x,y;
	//构造器 传入按钮
	public MainThread(JButton jbu){
		this.jbu=jbu;
	}
	//重写run方法
	public void run(){
		//死循环  控制字样的输出及按钮的移动
		while(true){
			try{
				Thread.sleep(50); //休眠时间
			}catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.print("OK");//输出字样
			move();//调用移动的方法
		}
	}

//使按钮移动
	public void move(){
		x+=2;
		y+=2;
		jbu.setBounds(x, y, 70, 30);
	}

  一个线程的对象是从它的run方法开始执行,而线程的启动必须调用其start方法,start方法只是启动线程,所以会马上返回!
  这样,在输出"OK"字样的同时,也实现了按钮的移动!且两个进程的运行不互相干扰!依此,可以在窗体上添加动态的小球,实现其暂停、恢复等功能!
分享到:
评论

相关推荐

    C#语言多线程初步理解

    总结来说,"C#语言多线程初步理解"这个主题涵盖了线程创建、线程安全、线程同步以及在WinForm应用中的实践。通过深入学习和实践这些概念,开发者可以编写出更加高效和响应迅速的应用程序。在“WindowsForms...

    用C#实现的unity线程初步

    本文将探讨如何在Unity中使用C#实现线程的基本概念,包括启动、终止、控制线程优先级以及处理线程间的数据共享问题。 一、创建和启动C#线程 在C#中,线程由`System.Threading`命名空间定义。首先,你需要包含这个...

    JavaScript多线程初步学习-附件资源

    JavaScript多线程初步学习-附件资源

    windows多线程编程与调试

    多线程初步设计,多线程的调试,多核编程。通过并行实现多任务处理

    C#多线程和Socket编程初步(PPT格式)

    多线程和Socket编程初步教程,非常适合初学者。

    Ruby多线程编程初步入门

    ### Ruby多线程编程初步入门 #### 一、引言 多线程编程是现代软件开发中的重要组成部分,尤其对于需要高效并发处理的任务而言更是如此。Ruby作为一种灵活且功能强大的编程语言,在支持多线程方面提供了丰富的工具...

    Windows多线程多任务设计初步

    ### Windows多线程多任务设计初步 在现代操作系统中,多线程和多任务处理是提升软件性能和响应性的关键。Windows操作系统通过支持多线程和多任务,使得多个应用程序和进程能够并行运行,提高了系统的整体效率。下面...

    QThread2.rar

    在"QT线程初步学习"这个主题中,我们将深入理解如何利用QThread类来管理和控制程序的并发执行,以提高应用程序的性能和响应性。 首先,QThread是Qt对标准C++线程的封装,提供了更高级别的接口,使得开发者可以更...

    java多线程开发初步入门

    java程序员初学多线程的可以看看哦 csdn积分只要一分哦

    Linux Multiply thread programming(多线程编程初步)

    ### Linux下的多线程编程初步 #### 线程的概念 在探讨多线程编程之前,我们首先需要明确什么是线程。线程是程序中能够被操作系统调度并发执行的最小单位,它存在于进程之中,是进程的一个执行路径。与进程相比,...

    线程监控工具,查找异常线程

    在Linux环境下,`top`、`htop`命令可以初步查看线程,而`gdb`、`strace`、`jstack`等工具则能进行深度分析。Java开发者可以使用JDK自带的`jconsole`、`jvisualvm`或第三方工具如`VisualVM`进行Java应用的线程监控。 ...

    Windows的多线程程序设计初步

    在Windows操作系统中,多线程程序设计是一种常见的技术,它允许多个任务或子任务同时运行,以提高程序的效率和响应性。本篇文章主要探讨了如何在不使用MFC类库的情况下,利用Windows API来创建和管理多线程。 ...

    一个初步的用VB写“多线程”程序的例子(9KB)

    标题中的“一个初步的用VB写“多线程”程序的例子”表明这是一个关于使用Visual Basic (VB)编程语言实现多线程技术的示例项目。多线程是计算机编程中的一个重要概念,允许程序同时执行多个任务,从而提高效率和响应...

    多线程的了解,初步实现

    多线程的了解,初步实现

    多线程同步利用ccriticalsection

    通过以上讲解,你应该对MFC中的`CCriticalSection`有了初步了解,并能开始在自己的多线程项目中运用这一同步机制。不过,记住,线程同步是一个复杂的话题,需要结合具体场景灵活运用,避免潜在的并发问题。

    初步理解进程、线程关系

    进程和线程是操作系统中两个基本的概念,它们是程序执行的两种不同模式。理解它们的关系对深入理解计算机系统的工作原理至关重要。 首先,我们要明白“进程”是什么。在计算机科学中,进程可以被看作是程序的执行...

    基于单线程贪吃蛇游戏的初步尝试.cpp

    wasd操作,英文输入法,单线程,比较笨重的东西,内存量尽管要求不大,不过浪费了很多资源,没有进行进一步的优化,有问题私信联系

    Java语言程序设计A实验_java_

    9. 实验9:线程初步.doc 线程使得程序可以并发执行,提高系统效率。实验会介绍线程的创建、同步和通信,包括Thread类的使用、Runnable接口的实现,以及synchronized关键字和wait/notify机制。 通过这些实验,学生...

    VB.Net多线程的入门实例

    在VB.Net编程中,多线程是一...通过以上介绍,你应该对VB.Net中的多线程有了初步的理解。在实际项目中,根据需求合理地运用多线程技术,可以提高程序的性能和用户体验。不断实践和学习,你将更加熟练地掌握多线程编程。

Global site tag (gtag.js) - Google Analytics