




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 多线程实验课程名:Java程序设计专业班级: 12网工2班 学号: 201240420224 姓名: 李后浪 实验时间: 2014.6.6 实验地点: K4-307 指导教师: 冯 珊 一、实验目的和要求掌握使用Thread的子类创建线程;学习使用Thread类创建线程;学习处理线程同步问题。二、实验内容任务1 汉字打字练习。 实验要求:编写一个Java应用程序,在主线程中再创建一个Frame类型的窗口,在该窗口中再创建1个线程giveWord。线程giveWord每隔2秒钟给出一个汉字,用户使用一种汉字输入法将该汉字输入到文本框中。1、 源代码:WordThread.javaimport java.awt.*;public class WordThread extends Thread char word; int k=19968; Label com; WordThread(Label com) =com; public void run() k=19968; while(true) word=(char)k; com.setText(+word); try Thread.sleep(6000);/调用sleep方法使得线程中断6000豪秒 catch(InterruptedException e) k+; if(k=29968) k=19968; ThreadFrame.javaimport java.awt.*;import java.awt.event.*;public class ThreadFrame extends Frame implements ActionListener Label wordLabel; Button button; TextField inputText,scoreText; WordThread giveWord;/用WordThread声明一个giveWord对象 int score=0; ThreadFrame() wordLabel=new Label( ,Label.CENTER); wordLabel.setFont(new Font(,Font.BOLD,72); button=new Button(开始); inputText=new TextField(3); scoreText=new TextField(5); scoreText.setEditable(false); giveWord=new WordThread(wordLabel);/创建giveWord,将wordLabel传递给WordThread构造方法的参数 button.addActionListener(this); inputText.addActionListener(this); add(button,BorderLayout.NORTH); add(wordLabel,BorderLayout.CENTER); Panel southP=new Panel(); southP.add(new Label(输入标签所显示的汉字后回车:); southP.add(inputText); southP.add(scoreText); add(southP,BorderLayout.SOUTH); setBounds(100,100,350,180); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) if(e.getSource()=button) if(!(giveWord.isAlive() /giveWord调用方法isAlive() giveWord=new WordThread(wordLabel); try giveWord.start();/giveWord调用方法start() catch(Exception exe) else if(e.getSource()=inputText) if(inputText.getText().equals(wordLabel.getText() score+=1000; scoreText.setText(得分:+score); inputText.setText(null); ThreadWordMainClass.javapublic class ThreadWordMainClass public static void main(String args) new ThreadFrame(); 2、运行结果:3、实验结果与分析:(明确地写出最后结果,并对自己得出的结果进行具体、定量的结果分析,说明其可靠性;杜绝只罗列不分析)在主线程中创建一个Frame类型的窗口,在该窗口中再创建1个线程giveWord。线程giveWord每隔2秒钟给出一个汉字,用户使用一种汉字输入法将该汉字输入到文本框中。任务2 双线程接力。 实验要求:编写一个应用程序,除了主线程外,还有两个线程:first和second。first负责模拟一个红色的按钮从坐标(10,60)运动到(100,60);second负责模拟一个绿色的按钮从坐标(100,60)运动到(200,60)。1、 源代码:MoveButton.javaimport java.awt.*;import java.awt.event.*;public class MoveButton extends Frame implements Runnable,ActionListener Thread first,second;/用Thread类声明first,second两个线程对象 Button redButton,greenButton,startButton; int distance=10; MoveButton() first=new Thread(this); /创建first线程,当前窗口做为该线程的目标对象 second=new Thread(this); /创建second线程,当前窗口做为该线程的目标对象 redButton=new Button(); greenButton=new Button(); redButton.setBackground(Color.red); greenButton.setBackground(Color.green); startButton=new Button(start); startButton.addActionListener(this); setLayout(null); add(redButton); redButton.setBounds(10,60,15,15); add(greenButton); greenButton.setBounds(100,60,15,15); add(startButton); startButton.setBounds(10,100,30,30); setBounds(0,0,300,200); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) try first.start(); second.start(); catch(Exception exp) public void run() while(true) if(Thread.currentThread()=first) /判断当前占有CPU资源的线程是否是first moveComponent(redButton); try Thread.sleep(20); catch(Exception exp) if(Thread.currentThread()=second) /判断当前占有CPU资源的线程是否是second moveComponent(greenButton); try Thread.sleep(10); catch(Exception exp) public synchronized void moveComponent(Component b) if(Thread.currentThread()=first) while(distance100&distance=100) b.setLocation(10,60); notifyAll(); if(Thread.currentThread()=second) while(distance=10&distance200) distance=10; b.setLocation(100,60); notifyAll(); MoveButtonMainClass.javapublic class MoveButtonMainClass public static void main(String args) new MoveButton(); 2、运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南娄底市文化旅游广电体育局所属事业单位引进高层次和急需紧缺人才组考3人模拟试卷及答案详解一套
- 2025北京十一晋元中学招聘考前自测高频考点模拟试题有答案详解
- 2025广东水利电力职业技术学院招聘32人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025贵州中医药大学第一附属医院人才引才考前自测高频考点模拟试题及参考答案详解一套
- 2025河南新乡市延津县审计局招聘辅助审计人员5人模拟试卷及完整答案详解1套
- 2025年潍坊寿光综合医院(原寿光市人民医院)招聘专业技术人员(23名)考前自测高频考点模拟试题及答案详解(典优)
- 2025内蒙古巴彦淖尔市临河区第三人民医院招聘部分人员3人考前自测高频考点模拟试题及一套参考答案详解
- 2025福建省农村信用社、农商银行招聘声明考前自测高频考点模拟试题附答案详解(模拟题)
- 2025辽宁锦州医科大学开展“锦医英才计划”教学名师遴选工作模拟试卷及答案详解(历年真题)
- 2025年武汉农村商业银行股份有限公司招聘77人考前自测高频考点模拟试题及参考答案详解1套
- 插花花艺师(高级)技能认证考试复习题及答案
- 山东省济南市历城第三中学2024-2025学年上学期九年级10月月考数学试题(无答案)
- 公务用车司勤人员职业技能竞赛知识理论测试题库2(公车管理政策法规)
- 2024年大学英语应用能力考试A级试卷及答案
- 《非道路移动工程机械二手设备评估通则》
- 凯撒大帝课件
- DL5190.5-2019电力建设施工技术规范第5部分:管道及系统
- 水刷石外墙清洗方案
- 【高中班会】高一选科指导课件
- 万千教育学前08岁儿童纪律教育给教师和家长的心理学建议
- 职高新思政-第五课:推动高质量发展
评论
0/150
提交评论