Erlang сообщения в процессы
От: sergesokolov Россия http://www.ideashag.spb.ru
Дата: 30.10.07 09:33
Оценка:
Ткните пожалуйста мордой,
предположим я вложил один(два) процесс(а) в receive другого. И посылаю ему сообщения снаружи(и изнутри тоже могу) сколько всего писать в Pid? Надо упоминать внешний процесс, или раз все уникально пройдет и так?
Re: Erlang сообщения в процессы
От: Gaperton http://gaperton.livejournal.com
Дата: 30.10.07 10:19
Оценка:
Здравствуйте, sergesokolov, Вы писали:

S>Ткните пожалуйста мордой,

S>предположим я вложил один(два) процесс(а) в receive другого.
Что-что ты сделал?

S>И посылаю ему сообщения снаружи(и изнутри тоже могу) сколько всего писать в Pid? Надо упоминать внешний процесс, или раз все уникально пройдет и так?

У процесса всегда один мэйлбокс, и один PID. Я не понимаю, что такое "вложить процесс в receive другого". Это как?
Re[2]: Erlang сообщения в процессы
От: sergesokolov Россия http://www.ideashag.spb.ru
Дата: 30.10.07 11:02
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, sergesokolov, Вы писали:


S>>Ткните пожалуйста мордой,

S>>предположим я вложил один(два) процесс(а) в receive другого.
G>Что-что ты сделал?

S>>И посылаю ему сообщения снаружи(и изнутри тоже могу) сколько всего писать в Pid? Надо упоминать внешний процесс, или раз все уникально пройдет и так?

G>У процесса всегда один мэйлбокс, и один PID. Я не понимаю, что такое "вложить процесс в receive другого". Это как?

1 prosess ->
receive
2proseess ->
receive
end
end
Re[3]: Erlang сообщения в процессы
От: Vinick Россия  
Дата: 30.10.07 12:09
Оценка:
Здравствуйте, sergesokolov, Вы писали:

S>1 prosess ->

S> receive
S> 2proseess ->
S> receive
S> end
S> end

а как это в коде выражено? можете показать?
Re[4]: Erlang сообщения в процессы
От: sergesokolov Россия http://www.ideashag.spb.ru
Дата: 30.10.07 12:17
Оценка:
Здравствуйте, Vinick, Вы писали:

V>Здравствуйте, sergesokolov, Вы писали:


S>>1 prosess ->

S>> receive
S>> 2proseess ->
S>> receive
S>> end
S>> end

V>а как это в коде выражено? можете показать?

Pardon
если бы это было выражено в коде, я бы сам запустил и все проверил.
К сожалению это только проект решения прикладной задачи, причем довольно громоздкой, что бы можно было катать не подумав.Если можно будет так делать тогда OK, нет — будем пробовать по другому.
Re[5]: Erlang сообщения в процессы
От: Vinick Россия  
Дата: 30.10.07 13:08
Оценка:
Здравствуйте, sergesokolov, Вы писали:


S>Pardon

S>если бы это было выражено в коде, я бы сам запустил и все проверил.
S>К сожалению это только проект решения прикладной задачи, причем довольно громоздкой, что бы можно было катать не подумав.Если можно будет так делать тогда OK, нет — будем пробовать по другому.

Просто мне совершенно не понятно, что же вы хотите сделать.
Попробую предположить что вы хотите сэкономить на коде и написать только один блок receive для двух(и более) разнородных процессов и внутри этого блока решать должен ли процесс обрабатывать сообщение или нет. Так?
Re[6]: Erlang сообщения в процессы
От: sergesokolov Россия http://www.ideashag.spb.ru
Дата: 30.10.07 13:19
Оценка:
Здравствуйте, Vinick, Вы писали:

V>Здравствуйте, sergesokolov, Вы писали:



S>>Pardon

S>>если бы это было выражено в коде, я бы сам запустил и все проверил.
S>>К сожалению это только проект решения прикладной задачи, причем довольно громоздкой, что бы можно было катать не подумав.Если можно будет так делать тогда OK, нет — будем пробовать по другому.

V>Просто мне совершенно не понятно, что же вы хотите сделать.

V>Попробую предположить что вы хотите сэкономить на коде и написать только один блок receive для двух(и более) разнородных процессов и внутри этого блока решать должен ли процесс обрабатывать сообщение или нет. Так?

Мы говорим немного на разных языках. Я хочу решить проблему распознания жестов в мобильном телефоне. Я надеюсь, что мне это удастся. В остальном да, так.
Re[7]: Erlang сообщения в процессы
От: Vinick Россия  
Дата: 30.10.07 14:05
Оценка:
Здравствуйте, sergesokolov, Вы писали:


S>Мы говорим немного на разных языках.

Давайте говорить на одном языке. Пусть для простоты это будет erlang.

S>Я хочу решить проблему распознания жестов в мобильном телефоне. Я надеюсь, что мне это удастся.

Вообще-то меня интересовала более частная задача — что вы хотите сделать "вложив один процесс в receive другого и посылая ему сообщения снаружи и изнутри".

S>В остальном да, так.

Если процессу гарантированно не будут посылать сообщения, которые он не должен обрабатывать, то ничего делать не надо

proc_loop()
   receive
     {From,{tag_1,Data}} -> %... 
          ;
     {From,{tag_2,Data}} -> %... 
          ;
     .......
     {From,{tag_N,Data}} -> %... 
   end
end.

start() ->
   P1 = spawn(M,proc_loop,[]),
   P2 = spawn(M,proc_loop,[]),
   P1!{self(),{tag_1,"hello"}},
   P2!{self(),{tag_2,"hello"}},
end.


Если процесс должен часть получаемых сообщений игнорировать, тогда ... я не могу представить такую ситуацию.
Re[8]: Erlang сообщения в процессы
От: sergesokolov Россия http://www.ideashag.spb.ru
Дата: 30.10.07 14:39
Оценка:
Здравствуйте, Vinick, Вы писали:

V>Здравствуйте, sergesokolov, Вы писали:



S>>Мы говорим немного на разных языках.

V>Давайте говорить на одном языке. Пусть для простоты это будет erlang.

S>>Я хочу решить проблему распознания жестов в мобильном телефоне. Я надеюсь, что мне это удастся.

V>Вообще-то меня интересовала более частная задача — что вы хотите сделать "вложив один процесс в receive другого и посылая ему сообщения снаружи и изнутри".

S>>В остальном да, так.

V>Если процессу гарантированно не будут посылать сообщения, которые он не должен обрабатывать, то ничего делать не надо

V>
V>proc_loop()
V>   receive
V>     {From,{tag_1,Data}} -> %... 
V>          ;
V>     {From,{tag_2,Data}} -> %... 
V>          ;
V>     .......
V>     {From,{tag_N,Data}} -> %... 
V>   end
V>end.

V>start() ->
V>   P1 = spawn(M,proc_loop,[]),
V>   P2 = spawn(M,proc_loop,[]),
V>   P1!{self(),{tag_1,"hello"}},
V>   P2!{self(),{tag_2,"hello"}},
V>end.
V>


V>Если процесс должен часть получаемых сообщений игнорировать, тогда ... я не могу представить такую ситуацию.

Я ... тоже, потому и спросил.
Спасибо, буду иметь в виду.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.