java实验报告7

时间:2024.4.13

一.实验目的

(1)了解Thread类并创建线程

(2)了解Runnable接口并创建线程

(3)学习多线程的同时运行

(4)了解守护线程

(5)了解线程同步

二.实验软件环境

jdk1.6.0_18、windows 7

三.实验内容

(1)编写一个java程序,定义一个ThreadA类继承Thread类,在main()方法中创建ThreadA类的三个实例,执行这些线程

package com.gdut.net.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 com.gdut.net.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[])

       {

              Thread a1= new Thread(new ThreadB(1));//[代码2]创建Thread的对象a1,传入参数new ThreadB(1)

              Thread a2= new Thread(new ThreadB(2));//[代码3]创建Thread的对象a2,传入参数new ThreadB(2)

              Thread a3= new Thread(new ThreadB(3));//[代码4]创建Thread的对象a3,传入参数new ThreadB(3)

              a1.start();//[代码5]调用a1的start()方法,启动线程a1

              a2.start();//[代码6]调用a2的start()方法,启动线程a2

              a3.start();//[代码7]调用a3的start()方法,启动线程a3

              System.out.println("主方法main()运行结束!");

       }

}

(3)程序模拟铁路售票系统

package com.gdut.net.javaoo.class070120;

//Sale.java

public class Sale

{

       public static void main(String args[])

       {

              SaleTickets t=new SaleTickets();

              //[代码1]分别创建4个线程,都传入参数t,再启动它们

              Thread t1=new Thread(t);

              Thread t2=new Thread(t);

              Thread t3=new Thread(t);

              Thread t4=new Thread(t);

              t1.start();

              t2.start();

              t3.start();

              t4.start();

       }

}

class SaleTickets implements Runnable

{

       private int tickets=1;

       public  void run()

       {

              while(true)

              {

                     if(tickets<=100)

                     {

                            synchronized(this)

                            {

                            System.out.println(Thread.currentThread().getName()+"销售第"+tickets+"票");

                            tickets++;

                            }

                            Thread.yield();

                     }

                     else

                            break;

              }

       }

}

(4)生成一个守护线程

package com.gdut.net.javaoo.class070120;

//TryDaemon.java

public class TryDaemon

{

       public static void main(String args[])

       {

              Thread t=new Thread(new DaemonThread());

              t.setDaemon(true);//[代码1]将线程t设置为守护线程,可通过setDaemon(true)设置

              t.start();//[代码2]启动线程t

              System.out.println("main()方法结束");

       }

}

class DaemonThread implements Runnable

{

       public void run()

       {

              while(true)

                     System.out.println("线程正在运行");

       }

}

(5)实现生产者消费者问题

package com.gdut.net.javaoo.class070120;

//ThreadSynchtonized.java

class common//定义同步资源

{

       private char ch;

       private boolean available=false;

       synchronized char get()

       {

              while(available==false)

              try

              {

                     wait();

              }

              catch(InterruptedException e){}

              available=false;

              notify();

              return ch;

       }

       synchronized void put(char newch)

       {

              while(available==true)//[代码1]当available变量的值是true的时候,一直挂起线程

              try

              {

                     wait();

              }

              catch(InterruptedException e){}

              ch=newch;

              available=true;

              notify();//[代码2]唤醒消费者进程

       }

}

class producer extends Thread//生产者

{

       private common comm;

       public producer(common thiscomm)

       {

              comm=thiscomm;

       }

       public void run()

       {

              char c;

              for(c='a';c<='e';c++)

              {

                     System.out.println("生产的数据是:"+c);

                     comm.put(c);

              }

       }

}

class consumer extends Thread//消费者

{

       private common comm;

       public consumer(common thiscomm)

       {

              comm=thiscomm;

       }

       public void run()

       {

              char c;

              for(int i=0;i<5;i++)

              {

                     c=comm.get();

                     System.out.println("消费者得到的数据是:"+c);

              }

       }

}

public class ThreadSynchronized//主程序

{

       public static void main(String args[])

       {

              common comm=new common();

              producer p=new producer(comm);

              consumer c=new consumer(comm);

              p.start();

              c.start();

       }

}

四.实验的结果及分析

五.实验心得体会

通过本章节的学习,对于本章节所要学习的目标都初步达到了。

更好地掌握了java程序的编写以及其思想。


第二篇:java实验报告7数据库操作


2010—2011学年第 1 学期

合肥学院数理系

实验报告?

课程名称: 《程序设计与算法语言》 实验项目: Applet程序设计 实验类别: 综合性□ 设计性√ 验证性□ 专业班级: 09信息与计算科学班 姓 名: 学 号: 实验地点: 校内机房 实验时间: 2010.11.14 — 2010.11.18 指导教师: 钱泽强 成 绩:

一、实验目的

掌握数据库的建立;熟悉结构化查询SQL的命令;学会编写加载数据库驱动和链接数据库的JAVA程序;应用自定义的图形用户界面,通过调用JAVA.SQL包中的类和接口库,编写数据库操作的应用程序。

二、实验内容

1、建立Access 数据库 ;

2、编写图形用户界面的应用程序,完成对Access 数据库中记录的查询、修改、增加、删除等操作

三、实验方案(程序设计说明)

四、实验步骤或程序(经调试后正确的源程序)

注:程序可附纸

1

五、程序运行结果

六、实验总结

七、教师评语及成绩

2010

年 月 日2

更多相关推荐:
java 实验报告 全

河南省高等教育自学考试实验报告册计算机及应用专业(本科段)《JAVA》姓名所属地市实验地点实验日期实验总成绩指导教师签名实验单位(实验室)意见:主考院校审核意见:河南科技大学自学考试办公室二零一零年x月实验一j…

五子棋Java实验报告

五子棋JAVA实验报告一实验目的和要求1能够用编程语言实现一个简单的五子棋程序2在实际系统中使用实现人工智能的相关算法3进一步加深对人工智能算法的理解二五子棋的基本常识与原理1五子棋的起源五子棋是一种两人对弈的...

java实验报告实验六Java图形用户界面

信息工程学院Java程序设计实习报告JAVA图形用户界面实验六Java图形用户界面1实验目的1掌握图形用户界面基本组件2了解如何使用布局管理器对组件进行管理3掌握Java事件处理机制2实验内容实验题1编写一个模...

java上机实验心得体会报告

北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间:20xx年x月x日版本:1.0.0指导教师:北京联合大学-信息学院编制实验…

Java实验报告

Java语言程序设计实验报告实验序号3一实验目的及要求1进一步熟练Java语法和常用方法的使用2进一步熟练Java程序结构3进一步提高算法设计与实现的能力4为后续章节的学习打下坚实的基础二实验设备环境实验室计算...

Java实验报告

JAVA课程标准实验报告学号1040501211姓名陈嘉生江苏科技大学计算机科学与工程学院基础部1实验一流程控制语句一实验目的1234二实验内容1安装开发环境JDK2编写一个JAVA应用程序在输出窗口显示quo...

java实验报告书3

浙江理工大学Java程序设计实验报告20xx20xx学年第二学期学院班级姓名学号任课教师信息学院11数字媒体技术2周咪咪20xx329700214宋瑾钰上课时间周二三四节数字媒体技术专业20xx年5月12345...

java实验报告4

广东工业大学实验报告学院专业班学号姓名成绩评定一实验目的1学习类的成员变量和成员方法的声明格式2学习java对象的创建和调用3学习参数传递4学习类的私有成员的定义访问方法已经共有成员的定义5理解类的构造方法构造...

Java实验报告1

Java实验报告

java实验报告11

实验报告20xx20xx学年第2学期课程名称JAVA程序设计实验名称字符串和正则表达式实验时间20xx年5月28日指导单位计算机学院软件学院软件工程系指导教师周莉学生姓名班级学号学院系计算机软件学专业计算机科学...

Java语言基础实验报告

浙江大学城市学院实验报告课程名称面向对象程序设计实验项目名称Java语言基础实验学生姓名专业班级学号一实验目的和要求1掌握Java语言的基本数据类型字符串数组2掌握Java语言的运算符表达式语句3能够编写Jav...

java实验九

Java语言程序设计实验报告九张鑫20xx1225实验名称实验日期Java数据流编程指导教师电子商务班级电子商务1302李鸿儒专业姓名

java实验报告(30篇)