JAVA线程实验报告 反弹球

JAVA线程实验报告 反弹球
JAVA线程实验报告 反弹球

16.JAVA网络编程实验 多线程

Java网络编程实验报告 (实验六) 学号:姓名: 实验项目名称:多线程教师评分: 一、实验目的 (1)了解线程的概念。 (2)学习简单的多线程编程。 二、预习内容及要求(要求写出预习内容) 1.进程和线程的概念 进程是程序一次动态执行的过程,对应从代码加载、执行到执行结束这样一个完整的过程,也是进程自身从产生、发展到消亡的过程。 线程是比进程更小的执行单元,一个进程在执行过程中,可以产生多个线程。每个线程都有自身的产生、执行和消亡的过程。 2.线程的状态与生命周期 ●新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。此 时它已经有了相应的内存空间和其他资源。 ●运行:线程创建之后就具备了运行的条件,一旦轮到它来享用CPU资源时,即JVM将CPU 使用权切换给该线程时,此线程的就可以脱离创建它的主线程独立开始自己的生命周期了(即 run方法执行的过程)。 ●中断:有4种原因的中断,CPU资源从当前线程切换给其他线程、执行了sleep(int millsecond) 方法、执行了wait()方法、进入阻塞状态。 ●死亡:run方法结束。 3.线程的创建 在Java语言中,与线程支持密切相关的是https://www.360docs.net/doc/8e6477256.html,ng.Thread类和https://www.360docs.net/doc/8e6477256.html,ng.Runnable接口。Runnable 接口定义很简单,只有一个run方法。任何一个类如果希望自己的实例能够以线程的形式执行,都可以来实现Runnable接口。 继承Thread类和实现Runnable接口,都可以用来创建Thread对象,效果上并没有什么不同。继承Thread类的方法很明显的缺点就是这个类不能再继承其他的类了,而实现Runnable接口不会有这个麻烦。 另外,在继承Thread类的代码中,this其实就是指当前正在运行的线程对象,如果使用实现Runnable 接口的方式,要得到当前正在执行的线程,需要使用Thread.currentThread()方法。 线程创建后仅仅是占有了内存资源,在JVM管理的线程中还没有这个线程,此线程必须调用start ()方法(从父类继承的方法)通知JVM,这样JVM就会知道又有一个新一个线程排队等候切换了。

8-实验八Java多线程操作(实验报告内容)

实验八 Java多线程操作 (实验报告) 一、目的 1.掌握Java多线程操作。 二、实验内容 启动线程,线程休眠,线程同步,等待和唤醒 三、实验环境 JDK1.6+dos环境 四、实验原理 通过案例掌握多线程操作。 五、实验步骤 1、设计一个线程操作类,要求可以产生三个线程对象,并可以分 别设置三个线程的休眠时间,如下所示: 线程A,休眠10秒 线程B,休眠20秒 线程C,休眠30秒 2、生产者与消费者问题,生产者生产一台电脑,消费者马上将生 产出的电脑取走。 六、实验小结 1、class MyThread implements Runnable{

String name; int time; public MyThread(String name,int time){ https://www.360docs.net/doc/8e6477256.html,=name; this.time=time; } public void run(){ try{ Thread.sleep(this.time); } catch(Exception e){ } System.out.println(https://www.360docs.net/doc/8e6477256.html,+"线程,休眠"+this.time/1000+"秒"); } } public class Demo08{ public static void main(String args[]){ MyThread mt1=new MyThread("线程A",10000); MyThread mt2=new MyThread("线程B",20000); MyThread mt3=new MyThread("线程C",30000);

java多线程实验报告

java多线程实验报告 篇一:西北农林科技大学java多线程实验报告 实验7 多线程 1.实验目的 (1) 掌握Java多线程的概念和实现方法 (2) 掌握Java多线程的同步问题 2.实验内容 任务一:火车售票 假设有火车票1000张,创建10个线程模拟10个售票点,每个售票点100毫秒买一张票。打印出售票过程,注意使用synchronized确保同一张票只能卖出一次。程序运行结果见左图。 打开Eclipse Tickets.java public class Ticket extends Thread { int ticket =1000; String name =""; public void run(){ while(true){synchronized(name){ if(ticket "第" + Thread.currentThread().getName()+ "售票点卖出了第" + ticket-- + "张票"); } } } }} try{ } catch(InterruptedException e){ }

Thread.sleep(100); Test.java public class Test { } public static void main(String args[]){} Ticket t = new Ticket(); new Thread(t,"1").start(); new Thread(t,"2").start(); new Thread(t,"3").start(); new Thread(t,"4").start(); new Thread(t,"5").start(); new Thread(t,"6").start(); new Thread(t,"7").start(); new Thread(t,"8").start(); new Thread(t,"9").start(); new Thread(t,"10").start(); 任务二:银行存款 假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次100元将钱到入。试编写一个程序,模拟实际作业。 程序如下: classCBank { private static int sum=0; public static void add(int n){ inttmp=sum; tmp=tmp+n;// 累加汇款总额 try{ Thread.sleep((int)(10000*Math.random())); //

Java实验五线程

实验五线程 一实验要求 1、理解进程和线程概念; 2、掌握创建、管理和控制Java线程对象的方法; 3、了解并发执行的多线程存在的各种关系 二实验内容 1、使用线程对象或Timer定时器制作数字时钟标签组件,显示当前日期和时间,每秒刷新,将该标签添加到框架窗口。 import java.awt.FlowLayout; import java.text.SimpleDateFormat;//简单日期格式类 import java.util.Locate; import java.util.Timer;//一种工具,线程用其安排以后在后台线程中执行的任务 import java.util.TimerTask; import java.swing.JLabel; public class ShizhongJFrame extends JFrame{ { Public ShizhongJFrame(){ JFrame f=new JFrame(“数字时钟”); f.setLayout(new FlowLayout()); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(200,70); final JLable lable=new JLable; final SimpleDateFormat format=new SimpleDateFormat(“H:m:s”,Locate.CHINA); f.add(lable); Timer time=new Timer(); time.scheduleAtFixedRate(new TimerTask(){ Public void run(){ Label.setText(format.format(new Date(System.currentTimeMillis()))); } },0,1000); f.setVisible(true); } Public staic void main(String arg[]){ New ShizhogJFrame(); } } 三实验内容中遇到的问题、解决方法和体会。

Java多线程实验报告

实验报告 课程名称: Java语言程序设计 姓名: 学号: 班级: 数学与计算机科学学院

数学与计算机科学学院实验报告实验名称:多线程 指导教师:日期:

if (isPrime) count++; } System.out.println(st + "~" + en + "之间共有" + count + "个质数"); } public static void main(String[] args) { UseThread thread1 = new UseThread(2, 1000); UseThread thread2 = new UseThread(1000, 2000); thread1.start(); thread2.start(); } } 第2题代码: public class Experiment14_2 { public static void main(String[] args) { MyThread t1 = new MyThread("T1"); MyThread t2 = new MyThread("T2"); t1.start(); t2.start(); System.out.println("活动线程数:" + Thread.activeCount()); System.out.println("main()运行完毕"); } } class MyThread extends Thread { public MyThread(String s) { super(s); } public void run() { for (int i = 1; i <= 3; i++) { System.out.println(getName() + "第" + i + "次运行"); try { sleep((int) (Math.random() * 100)); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(getName() + "结束"); } }

JAVA线程程序设计(小时钟)实验报告(附完整代码)

线程程序设计 一、课题内容和要求 内容:设计和编写一个编写一个指针式时钟程序,应用线程实现时钟的走动。 要求:本实验旨在通过实验,培养学生将JAVA 线程的相关知识点(包括线程调度,线程同步等)有机结合并加以综合应用,在实验中设计多线程程序的能力。 二、设计思路分析 class Clock:一个指针式时钟的主类 class Layout: 添加窗口和时钟组件 class ClockPaint:定义时钟组件 三、概要设计 public class Clock extends JFrame { public static void main(String[] s) ; } class Layout extends JFrame { public Layout(); } class ClockPaint extends JPanel implements Runnable { int x, y, r; int h, m, s; double rad = Math.PI / 180; public ClockPaint(int x, int y, int r); public void paint(Graphics g); public void run(); } 时钟的绘制:

运行时钟: 四、详细设计 import java.awt.*; import javax.swing.*; import java.util.*; public class Clock extends JFrame { public static void main(String[] s) { new Layout(); } } class Layout extends JFrame {// 添加窗口和时钟组件public Layout() { ClockPaint cp = new ClockPaint(20, 20, 70); add(cp);

Java多线程实验报告

实验4:Java多线程 实验时间:实验地点: 一、实验目的及要求 (1)了解线程的概念。 (2)学习简单的多线程编程。 二、实验设备环境及要求 三、实验任务 (1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 四、实验内容与步骤 1.输入下面的Java Application程序,运行该程序,并简要分析程序的运行结果。 1:class SimpleThread extends Thread { 2:public SimpleThread(String str) { 3:super(str); //调用其父类的构造方法 4:} 5:public void run() { //重写run方法 6:for (int i = 0; i < 10; i++) { 7:System.out.println(i + " " + getName()); 8://打印次数和线程的名字 9:try { 10:sleep((int)(Math.random() * 1000)); 11://线程睡眠,把控制权交出去 12:} 13:catch (InterruptedException e) { } 14:} 15:System.out.println("DONE! " + getName()); 16://线程执行结束 17:} 18:}

1:public class TwoThreadsTest { 2:public static void main (String args[]) { 3:new SimpleThread("First").start(); 4://第一个线程的名字为First 5:new SimpleThread("Second").start(); 6://第二个线程的名字为Second 7:} 8:} 2.编写程序,将上面多线程程序用Runnable接口来实现。 class SimpleThread implements Runnable{ public void run(){ for (int i = 0; i < 10; i++){ System.out.println(i + " " + Thread.currentThread().getName()); try { Thread.sleep((int)(Math.random() * 1000)); //线程睡眠,把控制权交出去 } catch (InterruptedException e) { } } System.out.println("DONE! " + Thread.currentThread().getName()); //线程执行结束 } } public class Test { public static void main (String args[]) { /*Thread t1=new Thread("First"); //第一个线程的名字为First Thread t2=new Thread("Second"); //第二个线程的名字为Second t1.start(); t2.start();*/ new Thread(new SimpleThread(),"First").start(); new Thread(new SimpleThread(),"Second").start() } }

Java多线程实验报告详解

西安邮电大学 (计算机学院) 课内实验报告 实验名称:多线程 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:2016.12.08

一、实验目的 1.线程的概念、线程的生命周期。 2.多线程的编程:继承Thread类与使用Runnable接口。 3.使用多线程机制实现动画。 二、实验要求 1. 掌握利用JA V A语言编写多线程程序的方法。 2. 掌握线程的调度方法。 3. 掌握多线程环境中GUI程序的编写方法。 三、实验内容 (一)汉字打字练习。 ?实验要求: 编写一个Java应用程序,在主线程中再创建一个Frame类型的窗口,在该窗口中再创建1个线程giveWord。线程giveWord每隔2秒钟给出一个汉字,用户使用一种 汉字输入法将该汉字输入到文本框中。 ?程序模板: WordThread.java import java.awt.*; public class WordThread extends Thread { char word; int k=19968; Label com; WordThread(Label com) { https://www.360docs.net/doc/8e6477256.html,=com; } public void run() { k=19968; while(true) { word=(char)k; com.setText(""+word); try{ 【代码1】//调用sleep方法使得线程中断6000豪秒 } catch(InterruptedException e){} k++; if(k>=29968) k=19968; }

java实验报告7

一.实验目的 (1)了解Thread类并创建线程 (2)了解Runnable接口并创建线程 (3)学习多线程的同时运行 (4)了解守护线程 (5)了解线程同步 二.实验软件环境 jdk1.6.0_18、windows 7 三.实验内容 (1)编写一个java程序,定义一个ThreadA类继承Thread类,在main()方法中创建ThreadA 类的三个实例,执行这些线程 package https://www.360docs.net/doc/8e6477256.html,.javaoo.class070120; //ThreadA.java class ThreadA extends Thread { int count=1; int num; public ThreadA(int newNum) { num=newNum; System.out.println("创建线程"+num); } public void run() { while(true) { System.out.println("线程"+num+":计数"+count); count++; if(count==3) break; } } public static void main(String args[])

{ ThreadA a1= new ThreadA(1);//[代码2]创建ThreadA的对象a1,传入参数1 ThreadA a2= new ThreadA(2);//[代码3]创建ThreadA的对象a2,传入参数2 ThreadA a3= new ThreadA(3);//[代码4]创建ThreadA的对象a3,传入参数3 a1.start();//[代码5]调用a1的start()方法,启动线程a1 a2.start();//[代码6]调用a2的start()方法,启动线程a2 a3.start();//[代码7]调用a3的start()方法,启动线程a3 System.out.println("主方法main()运行结束!"); } } (2)编写一个java程序,定义一个类ThreadB实现Runnable接口,在main()方法中创建ThreadB类的三个实例,执行这些线程 package https://www.360docs.net/doc/8e6477256.html,.javaoo.class070120; //ThreadB.java class ThreadB implements Runnable { int count=1; int num; public ThreadB(int newNum) { num=newNum; System.out.println("创建线程"+num); } public void run() { while(true) { System.out.println("线程"+num+":计数"+count); count++; if(count==3) break; } } public static void main(String args[]) {

Java实验报告

中南大学 Java语言实验报告 学生姓名:L 专业班级:计算机科学与技术教师:季桂树 学院:信息科学与工程学院 2018年1月 1

目录 第1章 Java语言概述 (3) 第2章 Java数据类型与表达式 (6) 第3章流程控制语句 (11) 第4章数组和方法 (17) 第5章类与对象 (25) 第6章继承与多态 (29) 第7章常用数据类型和处理类 (35) 第8章抽象类和接口 (40) 第9章异常处理 (45) 第10章 Applet编程与Java绘图 (50) 第11章图形用户界面编程基础 (54) 第12章多线程 (58) 第13章流式输入输出与文件处理 (62) 第14章 Java泛型与收集API (67) 第15章高级图形界面程序 (74) 第16章 Java的网络编程 (78) 第17章 JDBC技术和数据库应用 (81) 2

第1章Java语言概述 实验目的 (1)掌握Java应用程序和Java Applet程序的调试步骤。 (2)了解Java程序的基本组成结构。 (3)了解字符方式和图形方式下数据的输出方法。 实验内容 1.样例调试 基础训练1编写应用程序输出如下菜单。 **************** * 1.求圆面积* * 2.求圆周长* * 0·退出* **************** 源代码: public class mainspace { public static void main(String args[]){ System.out.println("****************"); System.out.println("* 1.求圆面积*"); System.out.println("* 2.求圆周长*"); System.out.println("* 0.退出*"); System.out.println("****************"); } } 运行结果: 基础训练2 同一文件中含两个类。 3

java 实验八 多线程 实验报告

实验八多线程 实验目标: (1)掌握使用Thread的子类创建线程;掌握实现Runable接口来实现多线程; (2)掌握线程之间的数据共享; (3)掌握线程之间的同步方法; (4)掌握线程之间的通信方法。 实验任务: 1、选择答题(请将答案标成红色,如(AB)): 1.下面关于线程的说法正确的是(ABD )。 A)Java 支持多线程机制。 B)一个线程创建并启动后,它将执行自己的run()方法,如果通过派生Thread类实现多线程,则需要在子类中重新定义run()方法,把需要执行的代码写run()方法中;如果通过实现Runnable接口实现多线程,则要编写run()方法的方法体。 C)要在程序中实现多线程,必须导入Thread类: import https://www.360docs.net/doc/8e6477256.html,ng.Thread; D)一个程序中的主类不是Thread的子类,该类也没有实现Runnable接口,则这个主类运行是不能控制主线程的休眠。 2.如果程序中创建了两个线程,一个的优先级是Thread.MAX_PRIORITY,另一个的优先级是正常的默认优先级,下列陈述哪个是对的?( A) A)正常优先级的线程不运行,直到拥有最高优先级的线程停止运行。 B)即使拥有最高优先级的线程结束运行,正常优先级的线程也不会运行。 C)正常优先级的线程优先运行。 D)上述说法都不对。 3.下面哪个是Runnable接口中的抽象方法(D)? A)start B)stop C)yield D)run 4.编译下面的程序,得到的结果是( C)。 public class A implements Runnable { public void run () { System.out.println("OK."); } public static void main (String[] args) { Thread Th=new Thread (new A()); Th.start(); } } A)程序不能编译,产生异常。 B)程序能编译运行,但没有任何结果输出。 C)程序能编译运行,输出结果:OK.。 D)上面说法都不对。 5.为什么处于激活状态的线程可能不是当前正在执行的线程?(BCD ) (备注:激活(unblock):如果阻塞线程的事件发生,则该线程被激活并进入就绪队列。) A)因为已经执行完run()方法。B) 线程正在等待键盘输入。 C)该线程调用了wait()方法。D)该线程正在休眠状态。

多线程实验报告

宁波工程学院电信学院计算机教研室 实验报告 课程名称: Java 2 实验项目: 多线程实验 指导教师: **** 实验位置: 电信楼机房 姓 名: *** 学 号: **** 班 级: **** 日 期: 一、实验目的 1、掌握多线程编程的特点和工作原理; 2、掌握编写线程程序的方法 3、了解线程的调度和执行过程 4、掌握线程同步机理 二、实验环境 windows 记事本,java jdk 1.60版本,cmd 命令运行窗口 三、实验内容 实验一: 应用Java 中线程的概念写一个Java 程序(包括一个测试线程程序类TestThread ,一个Thread 类的子类PrintThread )。在测试程序中用子类PrintThread 创建2个线程,使得其中一个线程运行时打印10次“线程1正在运行”,另一个线程运行时打印5次“线程2正在运行 源程序: public class A { public static void main(String args[]) {

Test1 A1; Test2 A2; A1=new Test1(); A2=new Test2(); A1.start(); A2.start(); } } class PrintThread extends Thread { } class Test1 extends PrintThread { public void run() { for(int i=1;i<=10;i++) { System.out.println("线程1正在运行!"); } } } class Test2 extends PrintThread { public void run() { for(int i=1;i<=5;i++) { System.out.println("线程2正在运行!"); } } } 运行结果:

java实验14 多线程1 - 答案

实验十四多线程(一) 一、实验时间:姓名:学号: 二、实验目的 1、了解线程的概念; 2、掌握通过Thread类创建线程; 3、掌握通过Runnable接口创建多线程; 4、掌握多线程的同步; 三、知识点 1、线程的概念; 2、通过Thread类创建线程; 3、通过Runnable接口创建多线程; 4、同步函数 四、实验内容与步骤 1、请思考并举例说明为何需要多线程,实现多线程的好处是什么? 2、编程实现以下功能:通过主线程控制另外两个线程,这两个线程分别在命令行窗口的左侧和右侧顺序地、一行一行地输出字符串。主线程负责判断输出的行数,当其中任何一个线程输出8行后就结束进程。 要求:分别使用Thread的子类和Runable接口创建线程。 1)使用Thread的子类完成 //主线程程序 public class Example8_3 { public static void main(String[] args) { Left left=new Left(); Right right=new Right(); left.start(); right.start(); while(true){ if(left.n==8||right.n==8){ System.exit(0); } }

public class Left extends Thread { int n=0; public void run(){ while(true){ n++; System.out.printf("\n%s", "我在左面写字"); try{ sleep((int)(Math.random()*100)+100); } catch(InterruptedException e){} } } } //右边线程 public class Right extends Thread { int n=0; public void run(){ while(true){ n++; System.out.printf("\n%40s", "我在右面写字"); try{ sleep((int)(Math.random()*100)+100); } catch(InterruptedException e){} } } } 2)Runable接口创建线程 //主线程程序 public class Example8_4 { public static void main(String[] args) { Left1 l1=new Left1(); new Thread(l1).start(); Right1 r1=new Right1(); new Thread(r1).start(); while(true){ if(l1.n==8||r1.n==8){ System.exit(0); } }

武汉理工多线程总结实验报告

武汉理工大学 面向对象与多线程综合实验 总结报告 学院:计算机科学与技术学院 指导教师: xxxx 学生姓名:xxx 学号: xxxx 班级: xxxx 2015-2016年第一学期

一、功能说明 这次实验主要实现一个档案管理系统,利用Java语言以及eclipse 编译器、数据库等工具来进行开发。以下为已完成的功能: 1.通过父类、子类、抽象类等实现了封装、继承与多态。 2.使用try-catch语句实现了异常处理。 3.通过输入输出流事现了文件的上传和下载。 4.用图形化用户界面事现了所有子菜单。 5.实现与Mysql数据库的连接,并且能进行基本的数据库查询、修改、录入等基本操作 二、实现目录及文件说明 实验工程目录如下图

实现目录包文件 封装、继承与多态Java.util.* DataProcessing.java User.java Administrator.java Main.java Operator.java Browser.java 异常处理Java.util.* Java.sql.* DataProcessing.java User.java Administrator.java Main.java Operator.java Browser.java 输入输出流Java.util.* Java.sql.* Java.io.* UserManager.java Main.java User.java DocManager.java Administrator.java Doc.java Operator.java Browser.java GUI设计Java.util.*J java.sql.* Java.io.* Java.awt.* Javax.swing.* UserManager.java Login.java User.java DocManager.java Administrator.java Doc.java Operator.java Browser.java JDBC数据库操作Java.util.* Java.awt.* Java.sql.* Javax.swing.* Java.io.* UserManager.java Login.java User.java DocManager.java Administrator.java Doc.java Operator.java Browser.java PasswordmismatchException.j ava NoUserFoundException.java 文件说明: 数据库登录系统是一个工程,在工程中的包中是实现功能的java源文件,包括DocManager.java、UserManager.java、User.java、Doc.java等一系列源文件,在各个源文件中是实现功能的具体类。 三、代码说明(只贴出部分重要的代码) class Doc{ public String getID() { return ID;} public void setID(String iD) { ID = iD;} public String getCreator() { return creator;} public void setCreator(String creator) { this.creator = creator;}

java多线程实验报告

北京建筑大学 理学院信息与计算科学专业实验报告 课程名称java语言程序设计实验名称java多线程实验地点大兴专业机房 姓名尹栎中班级信141 学号201407010111 指导教师靳旭玲成绩日期2016.11.26 (1)了解线程的概念。 (2)学习简单的多线程编程。 【实验任务】 (1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。 (2)按要求编写一个Java Application程序,并编译、运行这个程序。 【实验内容】 1.输入下面的Java Application程序,运行该程序,并简要分析程序的运行结果。 class SimpleThread extends Thread { public SimpleThread(String str) { super(str); //调用其父类的构造方法 } public void run() { //重写run方法 for (int i = 0; i < 10; i++) { System.out.println(i + " " + getName()); //打印次数和线程的名字 try { sleep((int)(Math.random() * 1000)); //线程睡眠,把控制权交出去 } catch (InterruptedException e) { } } System.out.println("DONE! " + getName()); //线程执行结束 } } public class TwoThreadsTest { public static void main (String args[]) { new SimpleThread("First").start(); //第一个线程的名字为First new SimpleThread("Second").start(); //第二个线程的名字为Second } } 2.编写程序,将上面多线程程序用Runnable接口来实现。

JAVA多线程的实验报告-

深圳大学实验报告课程名称:Java程序设计 实验项目名称:线程 学院:计算机与软件学院 专业: 指导教师:谭舜泉 报告人:学号:班级:3班 实验时间:2012年12月13日 实验报告提交时间:2012年12月26日 教务部制

一、实验内容: 8.2.3 吵醒休眠的线程 实验代码: class Shop implements Runnable { Thread zhangWorker,wangWorker,boss; Shop() { boss=new Thread(this);//创建boss,Shop对象为boss目标对象 zhangWorker=new Thread(this); wangWorker=new Thread(this); zhangWorker.setName("张工"); wangWorker.setName("王工"); boss.setName("老板"); } public void run() { int i=0; if(Thread.currentThread()==zhangWorker) { while(true) { try {i++; System.out.printf("\n%s已搬运了%d箱苹果 \n",zhangWorker.getName(),i); if(i==3)return; Thread.sleep(10000); }//zhangWorker休眠10秒} catch(InterruptedException e){System.out.printf("\n%s 让%s继续工作",boss.getName(),zhangWorker.getName());} } } else if(Thread.currentThread()==wangWorker) { while(true) { try

java多线程实验报告

Java实验程序设计实验报告 实验名称:多线程 一:实验目的 1、掌握线程和多线程的概念。 2、掌握创建线程的两种方法及其区别。 3、了解线程的启动、终止、同步、互斥和优先级等概念。 二:实验内容 1、编写一个程序,其功能是运行之后,其中有一个线程可以输出20次你的学号,另一个线程会输出20次你的姓名。 2、编写一个图形界面程序,运行之后,让其中有一个线程能在界面上“实时”显示系统当前时间(精确到秒获取时间可查询java.util.Calendar类,它包含了多个用于获得系统时间的函数)。另让一个线程可以在界面上提示当前系统时间下用户该做什么工作(例如当程序判断出系统时间现在是8:00到9:00,则提示用户该上课;现在是23:00到8:00,则提示用户该休息。具体测试时可以将时间段限制到秒级,以便及时查看到程序运行中提示信息的变化)。 三:实验设计 四:实验测试及运行结果 实验一;20次输出姓名,学号实验二:一个界面的左边显示当时时间,显示的时间会随时间的改变而改变,右边显示某个时间段该干什么,比如该睡觉,该上课,该自习。 五:问题与总结 通过这次实验学会了怎么使用多线程。 六:附录 package shiyan6_1; class MyThread implements Runnable { public MyThread() {

// 构造函数的代码,根据需要来写 } public void run() { for (int i = 1; i <= 20; i++) { System.out.println("第" + i + "次执行线程" + Thread.currentThread().getName()); try { Thread.currentThread().sleep(500);// 睡眠500ms } catch (InterruptedException e) { } } } public static void main(String args[]) { Thread t1 = new Thread(new MyThread(), "学号"); // 创建线程1的对象,并 // 通过第二个参数将其命名为thread 1 Thread t2 = new Thread(new MyThread(), "姓名"); // 创建线程2的对象,并 // 通过第二个参数将其命名为thread 2 t1.start(); // 启动两个线程运行

java实验报告

目录实验1 Java语言基础 实验2 数组和字符串编程 实验3 Java面向对象程序设计 实验4 Java异常处理 实验5 多线程编程 实验6 图形用户界面编程 实验7 输入与输出 实验8 网络编程 实验9 数据库编程

实验1 Java语言基础 一、实验目的和要求 1.实验目的 通过实验,掌握Java语言程序设计的基本方法。 学会Java语言中标示符的命名、运算符和表达式的应用。 熟练地掌握Java程序流程控制语句的应用。 2.实验容 1.编写应用程序,计算100(含100)以所有偶数的和。 2.“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。编写程序,求所有的水仙花数。 3.编写一个程序,求1-100间的素数。 4.有一函数: x (x<1) Y= 3x-2 (1≤x<10) 4x (x≥10) 写一程序,给定x值,输出y值。 5.使用for循环语句,编写程序输出以下图案。 ☆ ☆☆☆ ☆☆☆☆☆ ☆☆☆☆☆☆☆ ☆☆☆☆☆ ☆☆☆ ☆ 6.编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。判断年是否为闰年的条件是:①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。 二、源代码 1.package addsum; public class addsum { public static void main(String s[])

{ int sum=0; for(int i=0;i<=100;i=i+2) sum=sum+i; System.out.println(sum); } } 2.package addsum; public class shuixianhua { public static void main(String[] args) { int i, j, k; for (i = 1; i <= 9; i++) { for (j = 0; j <= 9; j++) { for (k = 0; k <= 9; k++) { if ((i * 100 + j * 10 + k) == (i * i * i + j * j * j + k * k * k)) System.out.println(i * 100 + j * 10 + k + "=" + i + "*" + i + "*"+i+"+" + j + "*" + j+ "*" + j + "+" + k+ "+" + k+ "+" + k); } } } } } 3.package addsum; public class prime { public static void main(String[] args) { System.out.println("100的素数为:"); loop: for (int i = 2; i < 100; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) { continue loop; } } System.out.print(" " + i); } } } 4.package addsum; import java.util.Scanner; public class question4 { public static void main(String[] args) { double x,y; System.out.print("请输入x:");

相关文档
最新文档