模拟内容
利用JAVA语言,模拟进程的并发执行的过程。一是体现在单CPU环境下,对CPU的竞争;二是体现在无明确调度算法支撑下,进程调度运行的无序性;三是充分体现推进过程的异步性;四是充分体现并发执行进程的微观表现。
附录程序清单
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ThreadProcess {
public static void main(String []arg) {
ThreadFrame threadFrame=new ThreadFrame();
threadFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//框架关闭时退出程序
Ball1 ball1=new Ball1(Panel1.b1,ThreadFrame.panel1);
Ball2 ball2=new Ball2(Panel2.b2,ThreadFrame.panel2);
Ball3 ball3=new Ball3(Panel3.b3,ThreadFrame.panel3);
int i=0;
int j=0;
int[] array=new int[1000];
for(i=0;i<1000;i++) {
j=(int)(Math.random()*10%3);
array[i]=j;
//j=i;
//array[i]=j%3;
}
while (true) {
for(i=0;i<1000;i++) {
switch (array[i]) {
case 0:
if(ball1.flag==true) {
ball1.run();
}
else {
ball1.yield();
}
break;
case 1:
if(ball2.flag==true) {
ball2.run();
}
else {
ball2.yield();
}
break;
case 2:
if(ball3.flag==true) {
ball3.run();
}
else {
ball3.yield();
}
break;
default: break;
}
}
}
}
}
class ThreadFrame extends JFrame {
public static Panel1 panel1=new Panel1();
public static Panel2 panel2=new Panel2();
public static Panel3 panel3