Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- // Módosítsuk az 1 és N közötti számokat összeadó programot úgy, hogy az intervallumot K részre osztjuk,
- // és K szálat indítunk. Mérjük meg K függvényében a sebességet.
- namespace ConsoleApp12
- {
- using System;
- using System.Threading;
- using System.Diagnostics;
- class Lista
- {
- static long[] szamlalok = new long[] { 0, 0, 0, 0, 0, 0, 0, 0 };
- static long N = 10000000;
- static long K = 2;
- static void Main()
- {
- Stopwatch sw = new Stopwatch();
- Console.WriteLine("freq = {0}", Stopwatch.Frequency);
- sw.Start();
- long s = 0;
- for (int i = 1; i <= N; ++i)
- {
- s += i;
- }
- sw.Stop();
- Console.WriteLine("Egy szálon: {0}", s);
- Console.WriteLine("Idő: {0}", sw.Elapsed);
- sw.Reset();
- sw.Start();
- for (long i = 0; i < K; i++)
- {
- Thread t = new Thread(Work);
- t.Start(i);
- t.Join();
- }
- sw.Stop();
- s = 0;
- for (int i = 0; i < K; i++)
- {
- s += szamlalok[i];
- }
- Console.WriteLine("{1} szálon: {0}", s, K);
- for (int i = 0; i < K; i++)
- {
- Console.Write("{0}\n",szamlalok[i]);
- }
- Console.WriteLine("Idő: {0}", sw.Elapsed);
- }
- static void Work(object msg)
- {
- long ind = (long)msg;
- long s = 0;
- for (long i = 1 + ind * N / K; i <= (ind + 1) * N / K; ++i)
- {
- s += i;
- }
- //Console.WriteLine(1 + ind * N / K);
- szamlalok[ind] = s;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement