操作系统实验报告

您所在的位置:网站首页 wps计算中一个线程 操作系统实验报告

操作系统实验报告

2024-07-10 17:06:06| 来源: 网络整理| 查看: 265

操作系统实验报告-基于线程的编程技术 一、实验目的和要求二、实验方法与步骤(需求分析、算法设计思路、流程图等)三、实验原始纪录(源程序、数据结构等)四、实验结果及分析(计算过程与结果、数据曲线、图表等)五、实验改进与思考

一、实验目的和要求

理解线程的定义和概念,掌握线程的实现方案。熟悉基于多线程的编程技术,编程实现简单的多线程编程实例。 熟练掌握一种以上的开发工具,如C++、JAVA、Delphi、VB等,掌握基本的编程技巧,自由选择一种编程语言设计并实现实验内容。

二、实验方法与步骤(需求分析、算法设计思路、流程图等)

需求分析:Java在语言级基础上支持多线程的设计,通过设计一个Java程序实现多线程,体现出多线程程序在运行时的特点,以及线程调度和执行的过程。 算法设计思路:在Java中,设计多线程有两种方式,本实验采用通过实现Runnable接口的方式。设计线程类MyThread,添加成员变量name为线程的对象名字,实现Runnable接口中的run()方法,若当前线程名为‘线程1’求出两个随机数的最大公约数,线程名为‘线程2’则求出求出两个随机数的最小公倍数,线程名为其他时什么也不做。在程序运行时,除了一个主线程外,还有其他若干个子线程在求随机数的最大公约数或最小公倍数或什么也不做。 流程图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/a3ac9f534e1b48e89e1146070b276381.png

三、实验原始纪录(源程序、数据结构等)

1.MyThread类:

public class MyThread implements Runnable { private String name; //成员变量,线程名称 @Override public void run() { //run方法通过判断线程名称执行不同操作 for (int i = 0; i System.out.println("我是"+name+","+a+"和"+b+"的最大公约数:" + gcd(a, b)); } else if ("线程2".equals(name)) { System.out.println("我是"+name+","+a+"和"+b+"的最小公倍数:" + lcm(a, b)); } else { System.out.println("我是"+name+","+"我啥也不干!"); } } } //求最大公约数 public int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } //求最小公倍数 public int lcm(int a,int b) { return a*b/gcd(a,b); } public MyThread() { } public MyThread(String name) { this.name = name; } }

2.测试类ThreadTest:

public class ThreadTest { public static void main(String[] args) { Thread t1 = new Thread(new MyThread("线程1")); Thread t2 = new Thread(new MyThread("线程2")); Thread t3 = new Thread(new MyThread("线程3")); t1.start(); t2.start(); t3.start(); Thread.currentThread().getThreadGroup().list();//显示当前所有线程列表 } } 四、实验结果及分析(计算过程与结果、数据曲线、图表等)

在这里插入图片描述 实验结果分析: 从Thread.currentThread().getThreadGroup().list();方法执行显示程序在运行时有5个线程,1个是主线程,1个是Monitor Ctrl-Break线程,经上网查询为开发工具运行程序时自带创建的,其他3个是main方法中创建的3个线程对象。Start方法启动所有线程后,由于每个线程的优先级都为5,所以他们随机被调度执行,表现为并发运行。

五、实验改进与思考

通过本次实验内容的学习和操作,让我对多线程内容知识有了更深一步的认识。多线程即是在一个程序中包含了一个以上的线程,它们通过cpu来进行快速的切换运行,因为其切换的速度非常快,所以使我们感觉它们是在同时进行的。在java程序中,每个程序都包含了一个执行main()函数的默认主线程,创建的其他线程对象必须是继承Thread类或者实现Runnable接口的类,在类中覆写run()方法来执行想实现的功能。而在主线程中要使用线程的start方法才能执行run中的内容,而当run执行结束后,线程也结束了。 在实践写代码过程中也遇到许多问题。通过实现Runnable接口的线程类不能直接创建该类的对象使用,而是将该对象作为Thread对象构造方法的参数。在程序执行前,我错误认为程序内的线程是轮流顺序被调度执行的,而通过执行结果和相关知识的查询,当线程优先级相同时,每个线程应当是随机被调度执行的。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭