⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 10.txt

📁 电子工业出版社出版的《java2应用开发指南》配套光盘源代码
💻 TXT
字号:

例程10-1
//TestThreadMain.java
class TestThreadMain
{
	public static void main(String args[])
	{
		TestThread aTestThread = new TestThread();
		While(aTestThread.isAlive())
		{
			try
			{
				Thread.slppe(100);
			}
			catch(Exception e)
			{
				e.printStackTrace();
				return;
			}
		}
	}
}

class TestThread extends Runnable
{
	public void run()
	{
		int nSelection = 0;
		int nNumber = 10;
		boolean bFlag = true;
		while(true)
		{
			repeat:
			for(int I=0;I<nNumber;I++)
			{
				if((nSelection=nNumner%I)==0)
				{
					bFlag = false;
					break repeat;
				}
			}
			if(bFlag)
			{
				System.out.println();
				bFlag = true;
			}
			nNumber++;
			bFlag = true;
		}
		try
		{
			sleep(100);
		}
		catch(InterruptedException exp)
		{
			e.printStackTrace();
			return;
		}
	}
}



例程10-2
//TestThreadMain1.java
class TestThreadMain1
{
	public static void main(String args[])
	{
		TestThread aTestThread = new TestThread();
		While(aTestThread.isAlive())
		{
			try
			{
				Thread.sleep(100);
			}
			catch(Exception e)
			{
				e.printStackTrace();
				return;
			}
		}
	}
}
class TestThread extends Thread
{
	//重写run方法
	public void run()
	{
		int nSelection = 0;
		int nNumber = 10;
		boolean bFlag = true;
		while(true)
		{
			repeat:
			for(int I=0;I<nNumber;I++)
			{
				if((nSelection=nNumner%I)==0)
				{
					bFlag = false;
					break repeat;
				}
			}
			if(bFlag)
			{
				System.out.println();
				bFlag = true;
			}
			nNumber++;
			bFlag = true;
		}
		try
		{
			sleep(100);
		}
		catch(InterruptedException exp)
		{
			e.printStackTrace();
			return;
		}
	}
}



例程10-3
//ThreadStatus.java
class ThreadStatus
{
public static void main(String args[])
{
        for (int i=0; i<5; i++) 
{
	//创建新的线程对象
Worker worker = new Worker();
//设置线程的优先级
            worker.setPriority(Thread.currentThread().getPriority()-1);
try 
{
	//线程启动
                worker.start();
				//线程睡眠5秒
                Thread.sleep(5000);    // Wait 5 seconds.

                System.out.println("Stopping thread: " + worker);
				//结束线程运行
                worker.safeStop();     // Stop the thread.
}
catch (InterruptedException e)
{
                e.printStackTraceTrace();
            }
        }
    }
}
//线程对象的创建
class Worker extends Thread
{
    private int count;
    private boolean done = false;

	//同步方法,拥有线程的运行终止
synchronized void safeStop()
{
        done = true;
    }
	//判断线程状态
synchronized boolean ok()
{
        return (!done);
}
//线程需要完成的工作
void doWork()
{
        // do something useful here
        ++count;
    }
    //线程的run方法
public void run()
{
        while (ok())
{
            doWork();
        }
    }
}



例程10-4
//ThreadDemo.java
class ThreadDemo extends Thread
{
	ThreadDemo(String strName)
	{
		System.out.println(“线程名称:”+strName);
	}
	public void run()
	{
		//打印出当前线程的优先级
		System.out.println(this.getPriority());
	}
}
class PriorityDemo
{
	public static void main(string args[])
	{
		ThreadDemo aThreadDemo = new ThreadDemo(“Thread A”);
		aThreadDemo.setPriority(Thread.MAX_PRIORITY);
		aThreadDemo.start();
		ThreadDemo bThreadDemo = new ThreadDemo(“Thread B”);
		bThreadDemo.setPriority(Thread.MIN_PRIORITY);
		bThreadDemo.start();
		ThreadDemo cThreadDemo = new ThreadDemo(“Thread C”);
		cThreadDemo.setPriority(Thread.NORMAL_PRIORITY);
		cThreadDemo.start();
		ThreadDemo dThreadDemo = new ThreadDemo(“Thread D”);
		dThreadDemo.setPriority(Thread.MIN_PRIORITY);
		dThreadDemo.start();
	ThreadDemo eThreadDemo = new ThreadDemo(“Thread E”);
		eThreadDemo.setPriority(Thread.MIN_PRIORITY);
		eThreadDemo.start();

	}
}



例程10-5
//Worker.java
class Worker extends Thread 
{
    private int count;
    private boolean done = false;
    private boolean suspended = false;
	//同步方法
synchronized void safeStop()
{
        System.out.println("stopped");
        done = true;
}
//同步方法
synchronized void safeSuspend()
{
        System.out.println("suspended");
        suspended = true;
    }
//同步方法
synchronized void safeResume()
{
        System.out.println("resumed");
        suspended = false;
        notify();
}
//判断标志变量
synchronized boolean ok()
{
        return (!done);
}
//线程实际执行的方法
synchronized void doWork()
{
        if (!suspended)
{
            // do something useful
            ++count;
        }
else
{
while (suspended)
{
                try
{
                    wait();
                }
catch (InterruptedException e)
{
                }
            }
        }
}
//线程的run方法
public void run()
{
        while (ok())
{
            doWork();
        }
    }
}



例程10-6
//main.java
class Main
{
public static void main(String args[])
{
	//实例化线程类对象
        Worker worker = new Worker();
		//设置线程的优先级
        worker.setPriority(Thread.currentThread().getPriority()-1);

        try
{
			//启动线程运行
            worker.start();
//用于演示线程状态的转换
for (int i = 0; i < 5; i++)
{
                Thread.sleep(5000);    // Wait 5 seconds.
                worker.safeSuspend();  // Suspend the thread.
                Thread.sleep(1000);    // Wait a second for it to resume
                worker.safeResume();   // Resume the thread
            }
			//终止线程运行
            worker.safeStop();
        }
		//捕获异常
catch (InterruptedException e)
{
            e.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -