java实验7-多线程编程

1 利用Thread和Runnable创建线程

【实验目的】

(1)理解用实现Runnable接口的方法实现多线程。

(2)掌握线程优先级的设置。

(3)加深对线程状态转换的理解。

【实验要求】

要求一:利用多线程实现旋转的行星

要求二:写一个线程SyncDemo, 给其设计一个方法public class getNumber() 从1开始计数到20停止。其中,设计两个同步线程AThread和BThread,均用getNumber()争抢这20个数。
注意线程AThread和BThread的同步控制,保证计数到20即停止。

要求二代码

class SyncDemo implements Runnable {
	static int num = 1;
	public synchronized Boolean getNumber() throws Exception {
		Thread.sleep(100);
		if(num <= 20) {
			System.out.println(Thread.currentThread().getName()+" "+num++);
			return true;
		}
		return false;
	}

	public void run() {
		try {
			while(getNumber());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
public class Fd {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SyncDemo demo = new SyncDemo();
		Thread AThread = new Thread(demo, "A");
		Thread BThread = new Thread(demo, "B");
		AThread.start();
		BThread.start();
	}
}
时间: 2024-10-13 20:47:07

java实验7-多线程编程的相关文章

Java中的 多线程编程

Java 中的多线程编程 一.多线程的优缺点 多线程的优点: 1)资源利用率更好2)程序设计在某些情况下更简单3)程序响应更快 多线程的代价: 1)设计更复杂虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂.在多线程访问共享数据的时候,这部分代码需要特别的注意.线程之间的交互往往非常复杂.不正确的线程同步产生的错误非常难以被发现,并且重现以修复. 2)上下文切换的开销当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另

Java基础知识—多线程编程(五)

概述 Java 给多线程编程提供了内置的支持.一个多线程程序包含两个或多个能并发运行的部分.程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径.使用多线程也是为了充分的利用服务器资源,提高工作效率. 线程生命周期 线程是一个动态执行的过程,它也有一个从产生到死亡的过程. 新建状态: 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态.它保持这个状态直到程序 start() 这个线程. 就绪状态: 当线程对象调用了start()方法之后,该

Java实验5 GUI编程

实验5 GUI编程 一.实验目的 掌握Java Swing 组件的使用方法,理解委托事件处理模型,掌握多种布局方式,掌握窗口菜单和快捷菜单设计方式,设计出具有图形用户界面.能够响应事件的Java应用程序. 二.实验内容 1.程序理解: 事件处理三个步骤 (1)搭建界面 (2)为相应控件定义事件处理类实现相应的事件处理接口并实现相应的事件处理接口函数 (3)注册事件监听器类对象 例: Unicode 字符查询器 (1)搭建界面 public class QueryFrame extends Fra

java实验10-java数据库编程

实验目的: 1) 理解JDBC的组成和结构 2) 掌握Java程序与数据库的链接技术 3) 掌握在Java程序中使用java.sql包中提供的DriverManager类.Connection .Statement.ResultSet类来存取数据库中数据的方法 实验要求: 首先建立一个数据库,在此基础上通过编程实现以下功能: (1)在数据库中建立一个表,表名为职工,其结构为:编号.姓名.性别.年龄.工资.是否党员. (2)在表中输入多条记录(自己设计具体数据) (3)将年龄在45以上员工的工资增

第73课 Qt中的多线程编程

1. QThread类 (1)QThread是一个跨平台的多线程解决方案 (2)QThread以简洁易用的方式实现多线程编程 2. QThread中的关键成员函数 (1)virtual void run() :线程函数,用于定义线程功能(执行流). (2)void start():启动函数,将线程入口地址设置为run函数.启动线程,新线程开始执行run函数. (3)int exec():进入事件循环,直至调用exit().返回线程退出事件循环的返回码. (4)void terminate():强

Java多线程编程核心技术(三)多线程通信

线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体.线程间的通信就是成为整体的必用方案之一,可以说,使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效的把控与监督.在本章中需要着重掌握的技术点如下: 使用wait/notify实现线程间的通信 生产者/消费者模式的实现 方法join的使用 ThreadLocal类的使用 1.等待 / 通知机制 通过本节可以学习到,线程与线程之间不是独立的个体,它们彼此

汪大神Java多线程编程实战

课程目录:├─1│  ├─Java并发编程.png│  ├─源码+ppt.rar│  ├─高并发编程第一阶段01讲.课程大纲及主要内容介绍.wmv│  ├─高并发编程第一阶段02讲.简单介绍什么是线程.wmv│  ├─高并发编程第一阶段03讲.创建并启动线程.mp4│  ├─高并发编程第一阶段04讲.线程生命周期以及start方法源码剖析.mp4│  ├─高并发编程第一阶段05讲.采用多线程方式模拟银行排队叫号.mp4│  ├─高并发编程第一阶段06讲.用Runnable接口将线程的逻辑执行单元

《Java多线程编程核心技术》推荐

写这篇博客主要是给猿友们推荐一本书<Java多线程编程核心技术>. 之所以要推荐它,主要因为这本书写得十分通俗易懂,以实例贯穿整本书,使得原本抽象的概念,理解起来不再抽象. 只要你有一点点Java基础,你就可以尝试去阅读它,相信定会收获甚大! 博主之前网上找了很久都没完整pdf电子版的,只有不全的试读版,这里博主提供免费.清晰.完整版供各位猿友下载: http://download.csdn.net/detail/u013142781/9452683 刚刚已经提到,<Java多线程编程核

Java多线程编程— 概念以及经常使用控制

多线程能满足程序猿编写很有效率的程序来达到充分利用CPU的目的,由于CPU的空暇时间可以保持在最低限度.有效利用多线程的关键是理解程序是并发运行而不是串行运行的.比如:程序中有两个子系统须要并发运行,这时候就须要利用多线程编程. 线程的运行中须要使用计算机的内存资源和CPU. 一.    进程与线程的概念 这两者的概念,这里仅仅给出自己狭隘的理解: 进程:进程是一个独立的活动的实体,是系统资源分配的基本单元. 它能够申请和拥有系统资源. 每一个进程都具有独立的代码和数据空间(进程上下文). 进程