Tonton Th a écrit :
> On 01/06/2011 02:51 PM, Pascal Hambourg wrote:
>
>>> Partager la mémoire entre des
>>> process différents par contre, c'est peut-être possible (?)
>>
>> Oui c'est possible, et c'est de cela que je parle.
>
> Bon, et un peu de troll : ayant deux classes de "fil" : la
> permière ayant besoin d'accès véloce en r/w à cette mémoire
> partagée, et la seconde n'ayant besoin que d'un d'accès r
> sans nécessité de performance, quelle est la meilleure
> façon de procéder ? shm, mmap, autre ?
>
class MachinBidule:
def init(self):
global val1
self.mutex=QTCore.QMutex()
def write(self,val):
self.mutx.lock()
self.val1=val
self.mutex.unlok()
def read(self):
print(val1)
en gros et non testé
remy
Tonton Th a écrit :
> On 01/06/2011 02:51 PM, Pascal Hambourg wrote:
>
>>> Partager la mémoire entre des
>>> process différents par contre, c'est peut-être possible (?)
>>
>> Oui c'est possible, et c'est de cela que je parle.
>
> Bon, et un peu de troll : ayant deux classes de "fil" : la
> permière ayant besoin d'accès véloce en r/w à cette mémoire
> partagée, et la seconde n'ayant besoin que d'un d'accès r
> sans nécessité de performance, quelle est la meilleure
> façon de procéder ? shm, mmap, autre ?
>
class MachinBidule:
def init(self):
global val1
self.mutex=QTCore.QMutex()
def write(self,val):
self.mutx.lock()
self.val1=val
self.mutex.unlok()
def read(self):
print(val1)
en gros et non testé
remy
Tonton Th a écrit :
> On 01/06/2011 02:51 PM, Pascal Hambourg wrote:
>
>>> Partager la mémoire entre des
>>> process différents par contre, c'est peut-être possible (?)
>>
>> Oui c'est possible, et c'est de cela que je parle.
>
> Bon, et un peu de troll : ayant deux classes de "fil" : la
> permière ayant besoin d'accès véloce en r/w à cette mémoire
> partagée, et la seconde n'ayant besoin que d'un d'accès r
> sans nécessité de performance, quelle est la meilleure
> façon de procéder ? shm, mmap, autre ?
>
class MachinBidule:
def init(self):
global val1
self.mutex=QTCore.QMutex()
def write(self,val):
self.mutx.lock()
self.val1=val
self.mutex.unlok()
def read(self):
print(val1)
en gros et non testé
remy
Il paraît que sous Linux le coût de commutation de threads
ou de processus n'est pas très différent, donc je suppute qu'il n'y a
pas de différence de performance significative à utiliser plusieurs
processus synchronisés par des sémaphores ou un processus multithreadé.
Il paraît que sous Linux le coût de commutation de threads
ou de processus n'est pas très différent, donc je suppute qu'il n'y a
pas de différence de performance significative à utiliser plusieurs
processus synchronisés par des sémaphores ou un processus multithreadé.
Il paraît que sous Linux le coût de commutation de threads
ou de processus n'est pas très différent, donc je suppute qu'il n'y a
pas de différence de performance significative à utiliser plusieurs
processus synchronisés par des sémaphores ou un processus multithreadé.
Michel Talon, dans le message <ig804e$2a9j$,
a écrit :
> Il paraît que sous Linux le coût de commutation de threads
> ou de processus n'est pas très différent, donc je suppute qu'il n'y a
> pas de différence de performance significative à utiliser plusieurs
> processus synchronisés par des sémaphores ou un processus multithreadé.
Attention, un sémaphore correspond souvent à un appel système (sous Linux,
les sémaphores SysV font systématiquement un appel système), alors qu'un
mutex se contente en général de code userland atomique.
Michel Talon, dans le message <ig804e$2a9j$1@asmodee.lpthe.jussieu.fr>,
a écrit :
> Il paraît que sous Linux le coût de commutation de threads
> ou de processus n'est pas très différent, donc je suppute qu'il n'y a
> pas de différence de performance significative à utiliser plusieurs
> processus synchronisés par des sémaphores ou un processus multithreadé.
Attention, un sémaphore correspond souvent à un appel système (sous Linux,
les sémaphores SysV font systématiquement un appel système), alors qu'un
mutex se contente en général de code userland atomique.
Michel Talon, dans le message <ig804e$2a9j$,
a écrit :
> Il paraît que sous Linux le coût de commutation de threads
> ou de processus n'est pas très différent, donc je suppute qu'il n'y a
> pas de différence de performance significative à utiliser plusieurs
> processus synchronisés par des sémaphores ou un processus multithreadé.
Attention, un sémaphore correspond souvent à un appel système (sous Linux,
les sémaphores SysV font systématiquement un appel système), alors qu'un
mutex se contente en général de code userland atomique.
Il me semble que si un processus ou un thread bloque sur un verrou, et
qu'un autre processus ou thread soit être activé, le noyau intervient
nécessairement (sauf avec du threading N:M) donc le gain éventuel n'est
que dans le cas du verrou non bloquant, ce qui est bien peu probable avec
beaucoup de threads, apparemment.
Il me semble que si un processus ou un thread bloque sur un verrou, et
qu'un autre processus ou thread soit être activé, le noyau intervient
nécessairement (sauf avec du threading N:M) donc le gain éventuel n'est
que dans le cas du verrou non bloquant, ce qui est bien peu probable avec
beaucoup de threads, apparemment.
Il me semble que si un processus ou un thread bloque sur un verrou, et
qu'un autre processus ou thread soit être activé, le noyau intervient
nécessairement (sauf avec du threading N:M) donc le gain éventuel n'est
que dans le cas du verrou non bloquant, ce qui est bien peu probable avec
beaucoup de threads, apparemment.
On 01/06/2011 05:43 PM, remy wrote:
> en gros et non test
Et elle est o , la m moire partag e ?
--
Ma coiffeuse est formidable -http://sonia.buvette.org/
On 01/06/2011 05:43 PM, remy wrote:
> en gros et non test
Et elle est o , la m moire partag e ?
--
Ma coiffeuse est formidable -http://sonia.buvette.org/
On 01/06/2011 05:43 PM, remy wrote:
> en gros et non test
Et elle est o , la m moire partag e ?
--
Ma coiffeuse est formidable -http://sonia.buvette.org/
import threading
import time
import random
from PyQt4 import QtGui,QtCore
import threading
import time
import random
from PyQt4 import QtGui,QtCore
import threading
import time
import random
from PyQt4 import QtGui,QtCore
remy wrote:import threading
import time
import random
from PyQt4 import QtGui,QtCore
<snip> 130 lignes de blabla pour faire trois fois rien, et je ne parle
pas de l'utilisation de la librairie Qt pour utiliser les threads de
cette librairie, puis de la librairie threading de python qui utilise
les threads "natifs" de python, comment se passe l'interaction (?), tou t
celà pour synchroniser plusieurs threads et non pas plusieurs process us
comme le fait un sémaphore. Cerise sur le gateau, une utilisation
complètement inutile de programmation objet, comme le dit Dijkstra:
"Object-oriented programming is an exceptionally bad idea which could
only have originated in California. "
Tant que le système produira des résultats de cet acabit, je ne don ne
pas cher de l'informatique en France.
Des exemples on en trouve autant qu'on veut sur activestate
http://code.activestate.com/recipes/
remy <remy.aumeunier@libertysurf.fr> wrote:
import threading
import time
import random
from PyQt4 import QtGui,QtCore
<snip> 130 lignes de blabla pour faire trois fois rien, et je ne parle
pas de l'utilisation de la librairie Qt pour utiliser les threads de
cette librairie, puis de la librairie threading de python qui utilise
les threads "natifs" de python, comment se passe l'interaction (?), tou t
celà pour synchroniser plusieurs threads et non pas plusieurs process us
comme le fait un sémaphore. Cerise sur le gateau, une utilisation
complètement inutile de programmation objet, comme le dit Dijkstra:
"Object-oriented programming is an exceptionally bad idea which could
only have originated in California. "
Tant que le système produira des résultats de cet acabit, je ne don ne
pas cher de l'informatique en France.
Des exemples on en trouve autant qu'on veut sur activestate
http://code.activestate.com/recipes/
remy wrote:import threading
import time
import random
from PyQt4 import QtGui,QtCore
<snip> 130 lignes de blabla pour faire trois fois rien, et je ne parle
pas de l'utilisation de la librairie Qt pour utiliser les threads de
cette librairie, puis de la librairie threading de python qui utilise
les threads "natifs" de python, comment se passe l'interaction (?), tou t
celà pour synchroniser plusieurs threads et non pas plusieurs process us
comme le fait un sémaphore. Cerise sur le gateau, une utilisation
complètement inutile de programmation objet, comme le dit Dijkstra:
"Object-oriented programming is an exceptionally bad idea which could
only have originated in California. "
Tant que le système produira des résultats de cet acabit, je ne don ne
pas cher de l'informatique en France.
Des exemples on en trouve autant qu'on veut sur activestate
http://code.activestate.com/recipes/
Michel Talon a écrit :remy wrote:import threading
import time
import random
from PyQt4 import QtGui,QtCore
<snip> 130 lignes de blabla pour faire trois fois rien, et je ne parle
pas de l'utilisation de la librairie Qt pour utiliser les threads de
cette librairie, puis de la librairie threading de python qui utilise
les threads "natifs" de python, comment se passe l'interaction (?), tout
celà pour synchroniser plusieurs threads et non pas plusieurs processus
comme le fait un sémaphore. Cerise sur le gateau, une utilisation
complètement inutile de programmation objet, comme le dit Dijkstra:
"Object-oriented programming is an exceptionally bad idea which could
only have originated in California. "
Tant que le système produira des résultats de cet acabit, je ne donne
pas cher de l'informatique en France.
connerie si si
l'obj est une abstraction tout comme les langages, python ,c ,java ,lisp
,etc
un truc pour facilite la vie du programmeur un interface homme /machine
ou code assembleur , micro code
un mutex ou un sémaphore c'est la même chose,
l'un est fait pour les
threads et l'autre (les sémaphores) c'est pour les processus leur
finalité est la même
partager une ressource ou faire une syncro la différence réside dans la
sémantique et l'environnement dans lequel ils sont utilisés
Des exemples on en trouve autant qu'on veut sur activestate
http://code.activestate.com/recipes/
c'est de la syncro a la portée du premier couillon qui passe tu léve un
lock et tu attends
de tout manier je peut te faire la même chose en c , java pour les
thread, ou basic avec une double liste et un boolean
et l'algo sera le même si si ,la différence résidera dans la puissance
des obj ou des fonctions utilisées
ces agencements doivent dater de début de l'aire informatique en gros
plus de 40 à 50 ans
après la différence réside dans la transposition et le compilateur
Michel Talon a écrit :
remy <remy.aumeunier@libertysurf.fr> wrote:
import threading
import time
import random
from PyQt4 import QtGui,QtCore
<snip> 130 lignes de blabla pour faire trois fois rien, et je ne parle
pas de l'utilisation de la librairie Qt pour utiliser les threads de
cette librairie, puis de la librairie threading de python qui utilise
les threads "natifs" de python, comment se passe l'interaction (?), tout
celà pour synchroniser plusieurs threads et non pas plusieurs processus
comme le fait un sémaphore. Cerise sur le gateau, une utilisation
complètement inutile de programmation objet, comme le dit Dijkstra:
"Object-oriented programming is an exceptionally bad idea which could
only have originated in California. "
Tant que le système produira des résultats de cet acabit, je ne donne
pas cher de l'informatique en France.
connerie si si
l'obj est une abstraction tout comme les langages, python ,c ,java ,lisp
,etc
un truc pour facilite la vie du programmeur un interface homme /machine
ou code assembleur , micro code
un mutex ou un sémaphore c'est la même chose,
l'un est fait pour les
threads et l'autre (les sémaphores) c'est pour les processus leur
finalité est la même
partager une ressource ou faire une syncro la différence réside dans la
sémantique et l'environnement dans lequel ils sont utilisés
Des exemples on en trouve autant qu'on veut sur activestate
http://code.activestate.com/recipes/
c'est de la syncro a la portée du premier couillon qui passe tu léve un
lock et tu attends
de tout manier je peut te faire la même chose en c , java pour les
thread, ou basic avec une double liste et un boolean
et l'algo sera le même si si ,la différence résidera dans la puissance
des obj ou des fonctions utilisées
ces agencements doivent dater de début de l'aire informatique en gros
plus de 40 à 50 ans
après la différence réside dans la transposition et le compilateur
Michel Talon a écrit :remy wrote:import threading
import time
import random
from PyQt4 import QtGui,QtCore
<snip> 130 lignes de blabla pour faire trois fois rien, et je ne parle
pas de l'utilisation de la librairie Qt pour utiliser les threads de
cette librairie, puis de la librairie threading de python qui utilise
les threads "natifs" de python, comment se passe l'interaction (?), tout
celà pour synchroniser plusieurs threads et non pas plusieurs processus
comme le fait un sémaphore. Cerise sur le gateau, une utilisation
complètement inutile de programmation objet, comme le dit Dijkstra:
"Object-oriented programming is an exceptionally bad idea which could
only have originated in California. "
Tant que le système produira des résultats de cet acabit, je ne donne
pas cher de l'informatique en France.
connerie si si
l'obj est une abstraction tout comme les langages, python ,c ,java ,lisp
,etc
un truc pour facilite la vie du programmeur un interface homme /machine
ou code assembleur , micro code
un mutex ou un sémaphore c'est la même chose,
l'un est fait pour les
threads et l'autre (les sémaphores) c'est pour les processus leur
finalité est la même
partager une ressource ou faire une syncro la différence réside dans la
sémantique et l'environnement dans lequel ils sont utilisés
Des exemples on en trouve autant qu'on veut sur activestate
http://code.activestate.com/recipes/
c'est de la syncro a la portée du premier couillon qui passe tu léve un
lock et tu attends
de tout manier je peut te faire la même chose en c , java pour les
thread, ou basic avec une double liste et un boolean
et l'algo sera le même si si ,la différence résidera dans la puissance
des obj ou des fonctions utilisées
ces agencements doivent dater de début de l'aire informatique en gros
plus de 40 à 50 ans
après la différence réside dans la transposition et le compilateur