Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 142 143 [144] 145 146 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#2146
,
|
|
|
|
По всякому, может хоть в одном потоке все исполнять, хоть в разных, в зависимости от настроек. http://stackoverflow.com/questions/1009575...ding-goroutines Цитата The go runtime multiplexes the goroutines across the system threads The number of system threads is controlled by an environment variable GOMAXPROCS and defaults to 1 currently I think. This may change in the future. |
|
Сообщ.
#2147
,
|
|
|
|
У меня нет GOMAXPROCS
А если один, то непонятно, почему работает: ![]() ![]() package main /* producer-consumer problem in Go */ import ("fmt") var done = make(chan bool) var msgs = make(chan int) func produce () { for i := 0; i < 10; i++ { msgs <- i } done <- true } func consume () { for { msg := <-msgs fmt.Println(msg) } } func main () { go consume() // вызываем сначала consume go produce() <- done } Или chan'ы при пустой очереди переключают контекст? Или я туплю? |
|
Сообщ.
#2148
,
|
|
|
|
Цитата D_KEY @ У меня нет GOMAXPROCS А если один, то непонятно, почему работает: ... Или chan'ы при пустой очереди переключают контекст? Или я туплю? Небуферизованные каналы синхронны (это собственно средство синхронзации горутин). Т.е. когда ты посылаешь сообщение в канал горутина будет приостановлена, пока кто-нибудь не прочитает сообщение это сообщение из канала. С другой стороны горутина, которая читает сообщение тоже блокируется пока не прочитает сообщение. Синхронность чтения не зависит от буферизации, для неблокирующего чтения используется select (внутри for). Попробуй так: ![]() ![]() package main /* producer-consumer problem in Go */ import ("fmt") var done = make(chan bool) var msgs = make(chan int, 10) // буферизованный канал func produce () { for i := 0; i < 10; i++ { msgs <- i } done <- true } func consume () { for { msg := <- msgs fmt.Println(msg) } } func main () { go consume() // вызываем сначала consume go produce() <- done } Добавлено Либо можно использовать небуферизованный канал и конкурентную отправку сообщений: ![]() ![]() ... var msgs = make(chan int) func produce () { for i := 0; i < 10; i++ { go send(i) } done <- true } func send(msg int) { msgs <- msg } ... Добавлено Если интересно и есть пару часов времени, можешь посмотреть на ютюбе "Go Concurrency Patterns" и "Lexical Scanning in Go". |
|
Сообщ.
#2149
,
|
|
|
|
Цитата D_KEY @ А если один, то непонятно, почему работает Так а что тебя удивляет? Обычная кооперативная многозадачность. |
|
Сообщ.
#2150
,
|
|
|
|
Цитата MyNameIsIgor @ Цитата D_KEY @ А если один, то непонятно, почему работает Так а что тебя удивляет? Обычная кооперативная многозадачность. Я не очень понимаю, как этот код работает одновременно и в кооперативной и в многотредной реализации... Или я не могу динамически переключатся с одного подхода на другой? Добавлено Цитата korvin @ Если интересно и есть пару часов времени Если бы они были, я бы тут не спрашивал |
|
Сообщ.
#2151
,
|
|
|
|
Цитата D_KEY @ Я не очень понимаю, как этот код работает одновременно и в кооперативной и в многотредной реализации... Или я не могу динамически переключатся с одного подхода на другой? Код, так сказать, входит в место переключения контекста. Это может быть чтение/запись в канал. Может, там ещё что в Go есть - я просто не в курсе, общую идею излагаю. Там он либо исполняет необходимое действие (записывает/считывает в/из канала), либо берёт из очереди первый готовый к выполнению контекст и переключает текущий поток на него. Ну, и многопоточно точно так же может происходить. Добавлено D_KEY, ты всё же прочитай про boost.task Если время будет |
|
Сообщ.
#2152
,
|
|
|
|
Цитата MyNameIsIgor @ Код, так сказать, входит в место переключения контекста. Это может быть чтение/запись в канал. Может, там ещё что в Go есть - я просто не в курсе, общую идею излагаю. Там он либо исполняет необходимое действие (записывает/считывает в/из канала), либо берёт из очереди первый готовый к выполнению контекст и переключает текущий поток на него. Ну, и многопоточно точно так же может происходить. Это понятно. Непонятно, как это динамически переключается с тредов на однопроцессную модель с переключением контекста. И по какому принципу. Цитата D_KEY, ты всё же прочитай про boost.task Если время будет ![]() Так там нельзя динамически переключать, можно лишь выбрать изначально стратегию. Или я не прав? |
|
Сообщ.
#2153
,
|
|
|
|
Цитата D_KEY @ Это понятно. Непонятно, как это динамически переключается с тредов на однопроцессную модель с переключением контекста. И по какому принципу. Один поток - это частный случай многопоточности. А что переключать то? Ну, увеличил количество потоков в пуле - и всё. Цитата D_KEY @ Так там нельзя динамически переключать, можно лишь выбрать изначально стратегию. Там, ЕМНИП, стратегия очереди задач выбирается. А можно ли менять количество потоков - не помню. |
|
Сообщ.
#2154
,
|
|
|
|
Да не в количестве потоков дело, а в механизме переключения. Ладно, может я туплю, надо будет в свободное время подумать
|
|
Сообщ.
#2155
,
|
|
|
|
Цитата D_KEY @ Да не в количестве потоков дело, а в механизме переключения. Так ты объясни что переключать то... |
|
Сообщ.
#2156
,
|
|
|
|
Да, зряплаты в Киеве, явно отстаёт от москалей и Ст.пт.. удивляет - почему?? (нет, правда непонятно!)
Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |
|
Сообщ.
#2157
,
|
|
|
|
Вы сначала устройтесь на работу в Киеве, ну или в Москве с такой зряплатой. А потом уже удивляйтесь.
![]() Мало ли что сказал [S]mike. Вы его сначала спросите - где, за что и сколько он лично получает. P.S. Конечно это нескромный вопрос, но... P.P.S. Если это реклама Альтиума, то... Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |
|
Сообщ.
#2158
,
|
|
|
|
Цитата northener @ Вы сначала устройтесь на работу в Киеве, ну или в Москве с такой зряплатой. А потом уже удивляйтесь. ![]() Ну, во-первых - необязательно на ВЫ. Во-вторых, объясню, чему именно я удивляюсь (если так не понятно): а удивляюсь я тому, что всегда считал украинских прогаммеров самыми лучшими, способными и талантливыми (от такой вот я москаль ) - в любом случае они намного круче наших. Да, так я всегда считал.. И какого, спрашивется, хрена, этих самых лучших, способных и талантливых держат на копейках (а пара килобаксов - это и есть копъё, на такие деньги и семью содержать не возможно..) И какого, спрашивется, хрена, какой-то сраный сайтостроитель может запросто в Москве тыщ на 150 устроиться (ты уж меня извиняй, но всяких-там сайтостроителей и скриптовиков я за программеров не считаю). Да, в Москве системщик может на те же бабки устроиться (если не больше). Но почему в Хохляндии по другому?? Почему там этих самых способных и талантливых не поддерживают?? Короче, именно этому факту я и удивляюсь. А тебя, разьве это не удивляет?? Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |
|
Сообщ.
#2159
,
|
|
|
|
Цитата Krid @ И какого, спрашивется, хрена, этих самых лучших, способных и талантливых держат на копейках (а пара килобаксов - это и есть копъё, на такие деньги и семью содержать не возможно..) Потому что Украина в основном аутсорсит на буржуев. А Дельфи (кроме вот вышеупомянутому Альтиуму) никому из буржуев не нужно. В основном нужны Джава, Шарп, Обжектив Си, веб-девелопмент. Цитата Krid @ И какого, спрашивется, хрена, какой-то сраный сайтостроитель может запросто в Москве тыщ на 150 устроиться (ты уж меня извиняй, но всяких-там сайтостроителей и скриптовиков я за программеров не считаю). Ну, Розыч мне в Москве всего лишь трешку обещал Я столько и в Киеве зарабатываю, правда не на Дельфях.Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |
|
Сообщ.
#2160
,
|
|
|
|
Цитата [S]mike @ Как не печалька, но оно так и есть Потому что Украина в основном аутсорсит на буржуев. А Дельфи (кроме вот вышеупомянутому Альтиуму) никому из буржуев не нужно. В основном нужны Джава, Шарп, Обжектив Си, веб-девелопмент. ![]() Скрытый текст Но теперь кроме Альтиума это нужно будет и УЗ. ХА ХА ХА ХА ХА Добавлено Кстати я когда установил XE3 я в первую очередь глянул на поддержку x64 C++ и сильно огорчился когда ее там не увидел ![]() Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |