From: "Boronin Sergey" <analisys@quality.s2.ru> To: <analisys@quality.s2.ru>, "'ALT Linux Sisyphus discussion list'" <sisyphus@altlinux.ru> Subject: RE: [sisyphus] Как ускорить работу с потоками? Date: Tue, 31 Aug 2004 11:58:35 +0400 Message-ID: <008501c48f30$5175e6e0$4d0010ac@aprcity.com> (raw) In-Reply-To: <005501c48f2c$b8ec1870$4d0010ac@aprcity.com> Сорри за формулировку, насчет создания больше чем 1015 потоков проблем нет, проблемы начинаются если все эти потоки натравить на один общий ресурс, из которого они все хотят читать и в который все хотят писать. Т.к. ядро рассматривает потоки так же как и процессы, но с общей памятью и идентификатором процесса, я думаю, что это связано с тем, что ядро опрашивает потоки (используя механизм сигналов, как и для процесссов), чтобы определить какой из них завис. Это так? С уважением, Боронин Сергей -----Original Message----- From: sisyphus-bounces@altlinux.ru [mailto:sisyphus-bounces@altlinux.ru] On Behalf Of Boronin Sergey Sent: Tuesday, August 31, 2004 11:33 AM To: sisyphus@altlinux.ru Subject: RE: [sisyphus] Как ускорить работу с потоками? Спасибо, я уже сам нашел причину проблемы. Я использовал в основе своего класса для разруливания блокировок кроссплатформенную версию TMultiReadExclusiveWriteSynchronizer, которая по-разному работает в виндах и линуксе. В виндах BeginRead, работает так, как следует из его названия, а в линуксе, реализации BeginRead и BeginWrite одинаковы и используют _phtread_mutex (из библиотеки libc), отсюда и разность в поведении. После того, как я это учел, все заработало нормально и с нормальной скоростью, так что это была моя ошибка. Так что проблема решена, спасибо. Интересная особенность, что при попытке создания 1015 потоков в линуксе, выдается exception, при том, что в винде и 8000 потоков нормально отрабатывали, хотя и медленно. Не знаете с чем это может быть связано? С уважением, Боронин Сергей -----Original Message----- From: Gleb Kulikov [mailto:glebus@asd.iao.ru] Sent: Monday, August 30, 2004 9:07 PM To: analisys@quality.s2.ru; ALT Linux Sisyphus discussion list Subject: Re: [sisyphus] Как ускорить работу с потоками? В сообщении от Понедельник 30 Август 2004 18:29 Boronin Sergey написал: > и то, только поле того, как завершаться все читающие потоки, этакий > аналог TMultiReadExclusiveWriteSynchronizer, но с поддержкой вложенных > блокировок(может вкладываться несколько блокировока на чение и только > Вопрос: «Почему так и как это побороть?» Поподробнее, как реализована блокировка? -- Салют, /GLeb UIN: 15341920 jabber://gleb@asd.iao.ru netmail: 2:5005/78
next prev parent reply other threads:[~2004-08-31 7:58 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2004-08-30 11:29 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 [this message] 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 ` Денис Смирнов 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='008501c48f30$5175e6e0$4d0010ac@aprcity.com' \ --to=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