Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 21:02, 26 October 2007.

Comunicação entre processos ou threads

From Forum Nokia Wiki

Original: How to communicate between two threads or processes


Contents

Introdução

Os mecanismos a seguir são usados para permitir a comunicação entre duas threads dentro de um mesmo processo ou entre dois processos quaisquer (tanto aplicações Symbian quanto Open C):


Pipes (dutos)

Pipes podem ser usados quando um processo cria um processo filho ou quando cria threads e necessita comunicar com eles. Os seguintes passos devem ser executados:

  • Declarar uma variável global do tipo array [2] de inteiros (int);
  • Criar um pipe;
  • Criar uma nova thread ou processo;
  • O pai deve ler dados do pipe;
  • O filho deve ler dados do pipe;
  • Fechar os descritores de escrita/leitura.

Exemplos de pipes


Pipes rotulados

Pipes rotulados (mkfifo) são usados para prover comunicação entre threads dentro de um mesmo processo ou entre processos não relacionados. Os seguintes passos devem ser executados:

  • Criar um pipe rotulado usando mkfifo;
  • Criar um processo ou thread e abrir o pipe em modo de escrita;
  • Outro processo deve abrir o pipe em modo de leitura;
  • Fechar os descritores de escrita/leitura.

Exemplos de pipes rotulados


Filas de mensagens

Filas de mensagens são usadas para prover comunicação entre threads dentro de um mesmo processo ou entre dois processos não relacionados. Os seguintes passos devem ser executados:

  • Criar uma fila de mensagens usando msgget;
  • Criar um processo ou thread e enviar alguma mensagem para a fila;
  • Ler a mensagem a na thread principal;
  • Apagar a fila de mensagens.

Exemplos de filas de mensagens


Memória compartilhada

Memória compartilhada é usada para prover comunicação entre threads dentro de um mesmo processo ou entre dois processos não relacionados. Os seguintes passos devem ser executados:

  • Criar segmento de memória compartilhada usando shmget;
  • Anexar segmento compartilhado ao espaço de endereçamento dos processos/threads usando shmat;
  • Implementar mecanismo de sincronização para controlar acesso ao recurso compartilhado, no caso a memória;
  • Remover o segmento de memória compartilhada do espaço de endereçamento dos processos/threads usando shmdt.

Exemplos de memória compartilhada

Related Discussions
Thread Thread Starter Forum Replies Last Post
Mobile internet toolkit 3.1 pappago General Browsing 5 2006-01-10 21:31
j2me and video recording cloud139 Mobile Java General 10 2007-08-16 19:55
KERN EXE 3 panic in exe santosh shetty General Symbian C++ 3 2006-01-11 08:36
Sound crashes the 6600 at unpredictable times! lax@work Mobile Java Media (Graphics & Sounds) 8 2004-12-07 12:11
Will be 7 threads too many? Can debug it on emulator? hansoft General Symbian C++ 3 2004-06-01 15:44
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX