在java程序中利用线程

package 第十一章;

import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;

public class shijian extends Frame {

	Panel pan=new Panel();
	Label lbl=new Label();
	Button btn1=new Button("开始");
	Button btn2=new Button("停止");
	boolean p=true;

	public shijian(String str) {
		super(str);
	}
	public shijian(){
		buju();
	}
	public static void main(String agrs[]){
		shijian sj=new shijian();
	}
	public void buju(){
		shijian f=new shijian("显示时间");
		f.setSize(500,500);
		f.setBackground(Color.gray);
		f.setLayout(null);
		f.setVisible(true);

		pan.setSize(500, 500);
		pan.setLocation(0, 0);
		pan.setBackground(Color.darkGray);
		pan.setLayout(null);

		lbl.setSize(300,100);
		lbl.setLocation(100, 100);
		lbl.setBackground(Color.yellow);
//		lbl.setFont();
		Font kl=new Font("宋体",0,25);
		lbl.setFont(kl);

		btn1.setSize(100,50);
		btn1.setLocation(100, 250);
		btn2.setSize(100,50);
		btn2.setLocation(300, 250);

		pan.add(btn2);
		pan.add(btn1);
		pan.add(lbl);
		f.add(pan);

//		监听开始事件
		btn1.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
					kaishi(e);
			}});
//		监听停止事件
		btn2.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				tingzhi(e);
			}});

	}
//	点击开始时调用
	public void kaishi(ActionEvent e){
		p=true;
		Thread t=new Thread(){
			public void run() {
				// TODO Auto-generated method stub
				while(p){
					Date d=new Date();
					lbl.setText(d.toLocaleString());
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e1) {
						e1.printStackTrace();
					}
				}
			}
		};
		t.start();
	}

	public void tingzhi(ActionEvent e){
//		Thread t=new Thread(){
//			public void run() {
				// TODO Auto-generated method stub
				p=false;
//			}
//		};
	}

}
时间: 2024-09-29 20:07:59

在java程序中利用线程的相关文章

java程序中的多线程(转)

为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务.这样的程序有单个控制线程,控制在这四个任务之间线性地移动.此外,因为所需的资源 ― 打印机.磁盘.数据库和显示屏 -- 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含明显的等待时间.因此,程序在访问数据库之前必须等待打印机完成打印文件的任务,等等.如果您正在等待程序的完成,则这是对计算资源和您的时间的一种拙劣使用.改进此程序的一种方法是使它成为多线程的. 四项不相关的任务 class myclass { sta

java程序中sql注入分析及优化方案

先来看看百度百科的解释: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句.比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到sql注入攻击. 1.java程序

Java程序中解决数据库超时与死锁

Java程序中解决数据库超时与死锁 2011-06-07 11:09 佚名 帮考网 字号:T | T Java程序中解决数据库超时与死锁,每个使用关系型数据库的程序都可能遇到数据死锁或不可用的情况,而这些情况需要在代码中编程来解决.本文主要介绍与数据库事务死锁等情况相关的重试逻辑概念. AD: Java程序中解决数据库超时与死锁,每个使用关系型数据库的程序都可能遇到数据死锁或不可用的情况,而这些情况需要在代码中编程来解决;本文主要介绍与数据库事务死锁等情况相关的重试逻辑概念,此外,还会探讨如何避

浅谈多线程在java程序中的应用

在一个高并发的网站中,多线程是必不可少的.下面先说一下多线程在程序中的作用.1.提高前端请求的响应速度.当我们执行一个比较耗时的方法时,http请求得不到响应甚至会超时,这时如果业务上允许数据的延迟,我们可以使用多线程来进行处理比较耗时的方法.这样前端发送了请求,后端令开启了一个线程去处理任务,就不会阻塞主线程了.2.减清服务器的压力.包括我们的web容器,如tomcat.jetty等,还有数据库服务器等.因为我们使用了多线程,并且线程池大小有限制,如30,那么同时请求数据库的链接就限制为30了

java程序中的经常出现的的异常处理课后总结

一.JDK中常见的异常情况 1.常见异常总结图 2.java中异常分类 Throwable类有两个直接子类: (1)Exception:出现的问题是可以被捕获的 (2)Error:系统错误,通常由JVM处理 3.被捕获的异常分类 (1)Check异常: 派生自Exception的异常类,必须被捕获或再次声明抛出 (2)Runtime异常:派生自RuntimeException的异常类.使用throw语句可以随时抛出这种异常对象 throw new ArithmeticException(…);

真正的Derby新手教程,Derby安装,创建数据库,在Java程序中使用Derby

1,下载并安装Derby: 下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本. 我用的是10.5.3.0. 解压缩到任意文件夹,我的是:E:\Java\Joy\derby 2,配置环境变量: 建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin 在Path加入:%DERBY_HOME%\bin 在CLASSPATH加入:%D

Linux上从Java程序中调用C函数

原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Java代码比其他语言编写的等价代码慢得多: 其他语言编写的代码已经经过大量测试和调试,并且知道如何将其导出到所有的目标平台上. Java平台有一个用于和本地C.C++代码进行互操作的API,称为Java本地接口(JNI).下面将举例讨论Linux平台下的JNI编程. 1. 创建java类文件 创建一个native

在java程序中访问windows有用户名和密码保护的共享目录

在java程序中访问windows有用户名和密码保护的共享目录 Posted on 2015-11-20 14:03 云自无心水自闲 阅读(3744) 评论(0)  编辑  收藏 --> Java程序中访问拥有全部读写权限的目录相对比较简单,和普通的目录没有什么差别.但是要访问一个需要用户和密码验证的目录就需要一点点小技巧了.这里介绍一个开源的库能够比较容易的实现这一需求.1. 下载库文件: https://jcifs.samba.org/ 下载的zip文件中, 不仅包含了jar文件,还有文档和

SQL函数TIMEDIFF在Java程序中使用报错的问题分析

需求背景 (读者可略过)司机每天从早到晚都会去到不同的自动售货机上补货,而且补货次数和路线等也是因人而异,补货依据是由系统优化并指派.但是目前系统还无法实施有效指挥和优良的补货策略,司机的补货活动因此变得较为随意和散漫.为了有效跟踪司机补货,计算司机补货效率,也为了便于HR月底计算司机绩效,因此提出需求需要根据司机补货记录数据阶段性地计算出补货情况统计值. 需求中指出,按天按司机手机号为统计维度,需要统计司机当天总共补货的机器数(相同机器补多次也只能算一台机器):统计司机当天总共补货的次数(自然