PiInterrupt.java
资源名称:Source.rar [点击查看]
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:1k
源码类别:
进程与线程
开发平台:
Java
- public class PiInterrupt extends Object implements Runnable {
- private double latestPiEstimate;
- public void run() {
- try {
- System.out.println("for comparison, Math.PI=" +
- Math.PI);
- calcPi(0.000000001);
- System.out.println("within accuracy, latest pi=" +
- latestPiEstimate);
- } catch ( InterruptedException x ) {
- System.out.println("INTERRUPTED!! latest pi=" +
- latestPiEstimate);
- }
- }
- private void calcPi(double accuracy)
- throws InterruptedException {
- latestPiEstimate = 0.0;
- long iteration = 0;
- int sign = -1;
- while ( Math.abs(latestPiEstimate - Math.PI) >
- accuracy ) {
- if ( Thread.interrupted() ) {
- throw new InterruptedException();
- }
- iteration++;
- sign = -sign;
- latestPiEstimate +=
- sign * 4.0 / ( ( 2 * iteration ) - 1 );
- }
- }
- public static void main(String[] args) {
- PiInterrupt pi = new PiInterrupt();
- Thread t = new Thread(pi);
- t.start();
- try {
- Thread.sleep(10000);
- t.interrupt();
- } catch ( InterruptedException x ) {
- // ignore
- }
- }
- }