コード例 #1
0
ファイル: Program.cs プロジェクト: Sophisticated-IS/OS_Labs
        static void Main(string[] args)
        {
            Console.WriteLine("Введите кол-во потоков");
            var n = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());

            Console.WriteLine("Введите основание hash функции");
            var k = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());


            var hashT  = new CustomHashTable(k);
            var locker = new object();

            Parallel.For((long)0, n, i =>
            {
                while (true)
                {
                    Thread.Sleep(50);
                    var rand  = new Random();
                    var key   = rand.Next(int.MinValue, int.MaxValue);
                    var value = rand.Next(int.MinValue, int.MaxValue);
                    lock (locker)    //TODO
                    {
                        hashT.Insert(key, value);
                    }

                    var msg = $"key: {key}, value: {value}";
                    Console.WriteLine(msg);
                    Thread.Sleep(100);
                }
            }
                         );
        }
コード例 #2
0
        static void Main(string[] args)
        {
            //CustomHashTable<string, string> ht = new CustomHashTable<string, string>(3);

            //ht.Insert("Кладбище домашних животных", "Стивен Кинг");
            //ht.Insert("Тёмная башня", "Стивен Кинг");
            //ht.Insert("Владычица озера", "Анджей Сапковский");
            //ht.Insert("Крещение огнём", "Анджей Сапковский");
            //ht.Insert("Башная ласточки", "Анджей Сапковский");

            int length = 200;

            CustomHashTable <string, int> ht = new CustomHashTable <string, int>(length);

            Random rnd = new Random();

            string testKey = "";

            for (int i = 0; i < length; i++)
            {
                string str = "";

                for (int j = 0; j < 10; j++)
                {
                    str += (char)rnd.Next(65, 124);
                }

                if (i == 0)
                {
                    testKey = str;
                }

                ht.Insert(str, rnd.Next(1, 101));
            }

            foreach (var pair in ht)
            {
                Console.WriteLine(pair.Key + " : " + pair.Value);
            }

            Console.WriteLine(new string('-', 30));

            Console.WriteLine(ht[testKey]);
            Console.WriteLine(ht.Search(testKey));

            ht.Delete(testKey);

            try
            {
                Console.WriteLine(ht.Search(testKey));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.ReadKey();
        }