From: "Денис Смирнов" <mithraen@freesource.info> To: analisys@quality.s2.ru, ALT Linux Sisyphus discussion list <sisyphus@altlinux.ru> Subject: Re: [sisyphus] Re:Как ускорить работу с потоками? Date: Fri, 10 Sep 2004 18:07:47 +0400 Message-ID: <20040910140747.GE23870@workstation> (raw) In-Reply-To: <013701c4972e$3c546470$4d0010ac@aprcity.com> On Fri, Sep 10, 2004 at 04:03:49PM +0400, Boronin Sergey wrote: BS> А можно в двух словах о концепциях, которые лежат в основе этих BS> технологий, т.е. на чем основана их работа и как реализуется BS> параллельность выполнения? BS> Если с помощью fork() то это медленнее, а пулл процессов будет отъедать BS> немало оперативки (гораздо больше чем потоки в процессах). _Параллельность_ -- никак. Ибо на 1-процессорной машине её быть не может вообще. Идея aio -- процесс говорит "читай/пиши вон то во-о-он туда, как выполнишь скажешь", после чего занимается другими делами (например говорит то же самое для другого потока данных). Таким образом 1 тред может обрабатывать очень большое количество одновременных потоков ввода/вывода (что критично, например, на тех же web-серверах). BS> Кроме того, потоки удобны тем, что используют единое адресное BS> пространство, BS> Что требует конечно известной аккуратности и внимательности, но и BS> позволяет сделать код проще, логику его работы прозрачнее, да и памяти BS> по сравнению с fork() ест не в пример меньше. Естественно. У fork() есть только одно преимущество -- изолящия, в том числе в плане безопасности. Поэтому один из вариантов работы системы -- один раз форкнуть несколько процессов (с меньшими привелегиями), а потом просто перекидывать им handle'ы (специальными сообщениями) уже после обработки авторизации. Но это для тех, кому надёжность важнее скорости (считаные проценты на этом но теряются). Поэтому можно создавать пул тредов (чуть больше количества процессоров), каждый из которых будет заниматься обработкой части хэндлов. -- С уважением, Денис http://freesource.info
next prev parent reply other threads:[~2004-09-10 14:07 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2004-08-30 11:29 [sisyphus] Как " Boronin Sergey 2004-08-30 11:36 ` Serge Ryabchun 2004-08-30 17:06 ` Gleb Kulikov 2004-08-31 7:32 ` Boronin Sergey 2004-08-31 7:44 ` Sviataslau Svirydau 2004-08-31 8:51 ` Boronin Sergey 2004-08-31 7:58 ` Boronin Sergey 2004-08-31 9:40 ` Dmitry V. Levin 2004-08-31 10:35 ` Boronin Sergey 2004-09-07 13:43 ` Vadim Gorodisky 2004-09-07 14:02 ` Boronin Sergey 2004-09-07 14:25 ` Ildar Mulyukov 2004-09-07 15:37 ` Boronin Sergey 2004-09-07 17:36 ` Денис Смирнов 2004-09-08 12:20 ` Denis Smirnov 2004-09-09 6:09 ` Serge Pavlovsky 2004-09-09 19:07 ` [sisyphus] " Денис Смирнов 2004-09-09 23:51 ` Serge Pavlovsky 2004-09-10 2:54 ` Денис Смирнов 2004-09-10 12:03 ` [sisyphus] " Boronin Sergey 2004-09-10 14:07 ` Денис Смирнов [this message] 2004-09-10 17:21 ` [sisyphus] Re: Как " Serge Pavlovsky 2004-09-10 21:32 ` Денис Смирнов 2004-09-11 15:20 ` Michael Shigorin 2004-09-12 20:20 ` Денис Смирнов 2004-09-14 18:46 ` Michael Shigorin 2004-09-14 20:12 ` Denis Smirnov 2004-09-13 0:19 ` Serge Pavlovsky 2004-09-13 20:02 ` Денис Смирнов 2004-09-14 0:04 ` Serge Pavlovsky 2004-09-15 21:03 ` Денис Смирнов 2004-09-17 14:20 ` Serge Pavlovsky 2004-09-10 10:50 ` [sisyphus] " Boronin Sergey 2004-09-10 14:01 ` Денис Смирнов
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20040910140747.GE23870@workstation \ --to=mithraen@freesource.info \ --cc=analisys@quality.s2.ru \ --cc=sisyphus@altlinux.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git