Thanks Kent, that did clear some of the smog. >At least make sure you understand the difference between threads and processes.
Will be taking that advice. I think it's the reason i struggle to ask the question better. On Fri, Nov 27, 2009 at 5:12 PM, Kent Johnson <ken...@tds.net> wrote: > On Fri, Nov 27, 2009 at 8:57 AM, OkaMthembo <zebr...@gmail.com> wrote: > > Thanks, i must admit the concept of the GIL is cloudy to me - for > example, > > if the python interpreter on a single machine is > > handling one process and locks until it is done, then on to the next one, > > and so on - isn't that what causes speed issues? > > A single interpreter runs in a single process. Within that process, > only one thread can be interpreting Python byte codes at one time. If > a thread is blocked, for example waiting for I/O, another thread can > run. Some C extensions release the GIL so other threads can run > concurrently. > > > I was wondering why python can't implicitly handle multiple processes at > > once by using all machine cores (have many threads, each > > invoking the interpreter and handling a process). > > Because explicit is better than implicit? > > The multiprocessing module allows you to control multiple processes > from Python and do pretty much what you describe above - a Python main > program can create multiple processes, each running a separate > interpreter, all working on a single problem. > > > Maybe i should get up to speed on threads first to get the bigger > picture? > > At least make sure you understand the difference between threads and > processes. > > Kent > -- Regards, Lloyd
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor