练习一下,线程知识.
有一台电脑设定自动启动.我在电脑启动后就登陆qq;
设定电脑本来是关机的,然后过了3秒后就自动启动了.设计为一个线程,
class compute implements Runnable{
private boolean startwork=false;
public boolean isStartwork() {
return startwork;
}
public void setStartwork(boolean startwork) {
this.startwork = startwork;
}
public void startwork(){
startwork=true;
}
public boolean isstartwork(){
return startwork;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("按啟動鍵三秒后,電腦開機了");
this.startwork();
}
}
启动后,再过5秒,我就操作电脑登陆qq.
class me implements Runnable{
compute c;
public me(compute c){
this.c=c;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(!c.isStartwork()){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//System.out.println("我登陆qq");
denglu();
}
private void denglu(){
System.out.println("我登陆qq");
}
}
测试:先启动电脑线程, 然后我线程再启动.
public class meandcompute {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
compute c=new compute();
new Thread(c).start();
new Thread(new me(c)).start();
}
}
输出: 按啟動鍵三秒后,電腦開機了 //3秒后输出
我登陆qq //5秒后输出
有一台电脑设定自动启动.我在电脑启动后就登陆qq;
设定电脑本来是关机的,然后过了3秒后就自动启动了.设计为一个线程,
class compute implements Runnable{
private boolean startwork=false;
public boolean isStartwork() {
return startwork;
}
public void setStartwork(boolean startwork) {
this.startwork = startwork;
}
public void startwork(){
startwork=true;
}
public boolean isstartwork(){
return startwork;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("按啟動鍵三秒后,電腦開機了");
this.startwork();
}
}
启动后,再过5秒,我就操作电脑登陆qq.
class me implements Runnable{
compute c;
public me(compute c){
this.c=c;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(!c.isStartwork()){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//System.out.println("我登陆qq");
denglu();
}
private void denglu(){
System.out.println("我登陆qq");
}
}
测试:先启动电脑线程, 然后我线程再启动.
public class meandcompute {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
compute c=new compute();
new Thread(c).start();
new Thread(new me(c)).start();
}
}
输出: 按啟動鍵三秒后,電腦開機了 //3秒后输出
我登陆qq //5秒后输出