pi.cs

来自「操作系统方面关于线程的代码。包括一个公共变量的多线程减问题;临界资源不加锁的多线」· CS 代码 · 共 48 行

CS
48
字号
using System;
using System.Threading;
namespace PIC
{
	class MyClass
	{
		public double PI;
		public short InS1=0,InS2=0;
		public void GetPI(int n,int m)
		{
		int i;
		double Sign=1;
		for(i=n;i<m;i++)
			{
			PI=PI+Sign/(2.0*(double )i+1.0);
			Sign=-Sign;
			}
		}
		public void S1()
		{	
			InS1=1;
			GetPI(0,100000);			
			InS1=0;
		}
		public void S2()
		{	
			InS2=1;
			GetPI(100001,200000);			
			InS2=0;
		}

		public static void Main(string[] args)
		{
		MyClass P=new MyClass();
		P.PI=0;
		ThreadStart ts1=new ThreadStart(P.S1);
		ThreadStart ts2=new ThreadStart(P.S2);
		Thread t1=new Thread(ts1);
		Thread t2=new Thread(ts2);
		t1.Start();
		t2.Start();
		//P.GetPI(0,1000000);
		while(P.InS1==1 || P.InS2==1)
			;
		Console.WriteLine("PI="+P.PI*4);
		}
	}
}

⌨️ 快捷键说明

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