Beispiel #1
0
        public void ComputesFibonacci()
        {
            StringReader reader = new StringReader(Fibonacci.PreComputed);

            string line = null;
            IList  list = new ArrayList();

            while ((line = reader.ReadLine()) != null)
            {
                string [] parts = line.Split(":"[0]);
                if (parts.Length < 2)
                {
                    continue;
                }
                int    n    = Int32.Parse(parts[0]);
                string fibN = parts[1].Trim();
                list.Insert(n, fibN);
            }

            int groupsixe           = 2;
            int num                 = 10;
            FJTaskRunnerGroup group = new FJTaskRunnerGroup(groupsixe);
            Fibonacci         f     = new Fibonacci(num);

            group.Invoke(f);
            int result = f.GetAnswer();

            Assert.AreEqual(list[num], result.ToString());
        }
Beispiel #2
0
 /// <summary>
 /// Constructor called only during FJTaskRunnerGroup initialization
 /// </summary>
 protected internal FJTaskRunner(FJTaskRunnerGroup g)
 {
     deq           = VolatileTaskRef.NewArray(INITIAL_CAPACITY);
     barrier       = new Object();
     scanPriority_ = FJTaskRunnerGroup.DefaultScanPriority;
     group_        = g;
     victimRNG     = new Random(this.GetHashCode());
 }
Beispiel #3
0
        /// <summary>
        /// Create a new <see cref="FJTaskRunner"/>, setting its thread
        /// as needed
        /// </summary>
        public static FJTaskRunner New(FJTaskRunnerGroup runnerGroup)
        {
            FJTaskRunner runner = new FJTaskRunner(runnerGroup);
            Thread       t      = new Thread(new ThreadStart(runner.DoStart));

            t.Name = "FJTaskRunner thread #" + t.GetHashCode();
            runner.SetThread(t);
            return(runner);
        }
        public void ComputesFibonacci()
        {
            StringReader reader = new StringReader(Fibonacci.PreComputed);

            string line = null;
            IList list = new ArrayList();
            while ((line = reader.ReadLine()) != null)
            {
                string [] parts = line.Split(":"[0]);
                if (parts.Length < 2)
                    continue;
                int n = Int32.Parse(parts[0]);
                string fibN = parts[1].Trim();
                list.Insert(n, fibN);
            }

            int groupsixe=2;
            int num=10;
            FJTaskRunnerGroup group = new FJTaskRunnerGroup(groupsixe);
            Fibonacci f = new Fibonacci(num);
            group.Invoke(f);
            int result=f.GetAnswer();
            Assert.AreEqual(list[num], result.ToString());
        }
 public InvokableCandidateFJTask(IRunnable r, FJTaskRunnerGroup group)
 {
     this.r = r;
     this.group = group;
 }
 /// <summary>
 /// Creates a new <see cref="InvokableFJTask"/> instance.
 /// </summary>
 internal InvokableFJTask(IRunnable r, FJTaskRunnerGroup group)
 {
     wrapped = r;
     this.group = group;
 }
Beispiel #7
0
 /// <summary>
 /// Create a new <see cref="FJTaskRunner"/>, setting its thread
 /// as needed
 /// </summary>
 public static FJTaskRunner New(FJTaskRunnerGroup runnerGroup)
 {
     FJTaskRunner runner = new FJTaskRunner(runnerGroup);
     Thread t = new Thread(new ThreadStart(runner.DoStart));
     t.Name = "FJTaskRunner thread #" + t.GetHashCode();
     runner.SetThread(t);
     return runner;
 }
Beispiel #8
0
 /// <summary>  
 /// Constructor called only during FJTaskRunnerGroup initialization
 /// </summary>		
 protected internal FJTaskRunner(FJTaskRunnerGroup g)
 {
     deq = VolatileTaskRef.NewArray(INITIAL_CAPACITY);
     barrier = new Object();
     scanPriority_ = FJTaskRunnerGroup.DefaultScanPriority;
     group_ = g;
     victimRNG = new Random(this.GetHashCode());
 }
Beispiel #9
0
 /// <summary> Execute this task. This method merely places the task in a
 /// group-wide scheduling queue.
 /// It will be run
 /// the next time any TaskRunner thread is otherwise idle.
 /// This scheduling  maintains FIFO ordering of started tasks
 /// with respect to
 /// the group of worker threads.
 /// </summary>
 public virtual void  Start()
 {
     FJTaskRunnerGroup.ExecuteTask(this);
 }
Beispiel #10
0
 /// <summary>
 /// Creates a new <see cref="InvokableFJTask"/> instance.
 /// </summary>
 internal InvokableFJTask(IRunnable r, FJTaskRunnerGroup group)
 {
     wrapped    = r;
     this.group = group;
 }
Beispiel #11
0
 public InvokableCandidateFJTask(IRunnable r, FJTaskRunnerGroup group)
 {
     this.r     = r;
     this.group = group;
 }