1基于线程的编程技术

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一基于线程的编程技术

一.实验内容:

熟悉基于多线程的编程技术,编程实现简单的多线程编程实例。

题目可以选取教材或习题中的多线程编程实例。

二.实验目的和要求

1)掌握使用一门语言进行多线程编程

2)编写程序将多线程的执行过程动态的演示出来。

三.实验方法和步骤

线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。

多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。

多个线程的执行是并发的,多线程和传统的单线程在程序设计上最大的区别在于,由于各个线程的控制流彼此独立,使得各个线程之间的代码是乱序执行的,由此带来的线程调度,同步等问题。

1.实验方法

1)使用流程图描述演示程序的设计思想;

2)选取C++、JA V A等计算机语言,编程调试,最终给出运行正确的程序。

2.程序设计

方法一:继承Thread实现线程

public class MyThread extends Thread

{

int count= 1, number;

public MyThread(int num)

{

number = num;

System.out.println

("创建线程" + number);

}

public void run() {

while(true) {

System.out.println

("线程" + number + ":计数" + count);

if(++count== 6) return;

}

}

public static void main(String args[])

{

for(int i = 0;i 〈5; i++) new MyThread(i+1).start();

}

}

方法二:实现Runnable 接口

public class MyThread implements Runnable

{

int count= 1, number;

public MyThread(int num)

{

number = num;

System.out.println("创建线程" + number);

}

public void run()

{

while(true)

{

System.out.println

("线程" + number + ":计数" + count);

if(++count== 6) return;

}

}

public static void main(String args[])

{

for(int i = 0; i 〈5;i++) new Thread(new MyThread(i+1)).start();

}

}

参考代码:

package edu.cs.ding;

public class MyThread implements Runnable {

int count = 1, number;

public MyThread(int num) {

number = num;

}

public void run() {

while (true) {

if (number % 2 == 0) {

System.out.println("这是一个练习!");

try {

Thread.currentThread().sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} else {

System.out.println("This is an exercise!");

try {

Thread.currentThread().sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

public static void main(String args[]) {

new Thread(new MyThread(1)).start();

new Thread(new MyThread(2)).start();

}

}

四.实验结果分析

分析两线程交替运行的情况,考虑能否采取一些措施控制两线程的交替次序。

相关文档
最新文档