作者wei7551 (阳光!?)
看板java
标题[问题] 想要取得是由哪个子程序抢到时间
时间Tue May 2 15:22:23 2006
我的程式码如下
现在想要取得是由哪个子程序抢得cpu时间 (P1,P2)
有什麽办法可以取得
假如说 我现在要取得是由哪个子程序抢得时间
然後 再让二个子程序执行二个不同的程式
那要如何撰写
(大部份内容都是由课本的内容修改 所以有很多不是很懂的地方)
import java.awt.*;
import java.awt.event.*;
public class os_java extends Frame implements ActionListener
{
int stop=0;
int pr1=0 , pr2=0 ;
static os_java frm=new os_java();
static Button btn1=new Button("执行");
static Button btn2=new Button("停止");
static Button btn3=new Button("离开");
static TextArea txa1=new TextArea("",10,20,TextArea.SCROLLBARS_NONE);
public static void main (String args[])
{
txa1.setEditable(false);
btn1.addActionListener(frm);
btn2.addActionListener(frm);
btn3.addActionListener(frm);
frm.setTitle("OS_多执行绪");
frm.setLayout(new FlowLayout(FlowLayout.CENTER));
frm.setSize(400,300);
frm.add(btn1);
frm.add(btn2);
frm.add(btn3);
frm.add(txa1);
frm.setVisible(true);
}
class Ctest extends Thread //创造子程序
{
private String id;
public Ctest(String str)
{
id=str ;
}
public void run()
{
for (int i=0;i<30;i++)//每一个子程序 执行30次
{
for(int j=0 ; j<100000000;j++); //无限回圈 让文字讯息延迟
{
txa1.append(id+" running..\n");
}
if (stop==1)//如果按了离开
stop() ;
}
}
}
public void actionPerformed(ActionEvent e)
{
Button btn=(Button) e.getSource();
Ctest p1=new Ctest("P1");
Ctest p2=new Ctest("P2");
if(btn==btn1) //如果按的是执行
{
p1.start() ; //让p1与p2这二个子程序去抢时间
p2.start() ;
}
else if(btn==btn2) //如果按的是停止
{
stop=1;
p1.stop();
p2.stop();
}
else //如果按的是离开
System.exit(0);
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.162.114.153