📄 10.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 + -